将选定的行数据传递给下一个 View Controller Swift 3 [英] Passing selected row data to next View Controller Swift 3

查看:32
本文介绍了将选定的行数据传递给下一个 View Controller Swift 3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 Swift 编程的新手,但遇到了问题.所以我想要做的是当用户选择表中的行时,我想获取所选行的标题,然后将其传递给下一个视图控制器.这是我的第一个视图控制器的代码:

I am new to Swift Programming and I am having problems. So what I want to do is when the user selects the row in a table then I want to grab the selected row's title and then pass it to the next View Controller. Here is my code for the First View Controller:

let senderArray = ["Sogyal","Ram"]
let messageArray = ["Hello","What's up?"]

cell.senderName.text = senderArray[indexPath.row]
cell.senderMessage.text = messageArray[indexPath.row]

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    newIndex = indexPath.row

    let selectedMessage = messageArray[indexPath.row]

    let composeVC = ComposeMessageVC()
    composeVC.usernameLbl = selectedMessage

    tableView.deselectRow(at: indexPath, animated: true)
    performSegue(withIdentifier: "goToComposeM", sender: self)
}

任何帮助将不胜感激.

推荐答案

如果您使用的是 segue,则需要在 prepare(for segue: UIStoryboardSegue, sender: Any?) 中传递数据.因此,将您的 didSelectRowAt 更改为:

You need to pass the data in prepare(for segue: UIStoryboardSegue, sender: Any?) if you are using a segue. So change your didSelectRowAt to this:

newIndex = indexPath.row

let selectedMessage = messageArray[indexPath.row]

tableView.deselectRow(at: indexPath, animated: true)
performSegue(withIdentifier: "goToComposeM", sender: selectedMessage)

然后覆盖prepareForSegue:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let vc = segue.destination as? ComposeMessageVC {
        vc.usernameLbl = sender as! String
    }
}

您的方法不起作用,因为您正在自己创建一个新的 VC,这与实际呈现的 VC 不同.

Your approach did not work because you are creating a new VC yourself, which is a different one from the one that is actually presented.

这篇关于将选定的行数据传递给下一个 View Controller Swift 3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆