ios - 将变量从 tableView 传递到 prepareForSegue?

标签 ios swift uitableview uiviewcontroller segue

我的最终目标是在传递变量时转到另一个 View Controller 。

这是我的代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let name : String=arrDict[indexPath.row].valueForKey("name") as! String
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if segue.identifier == "SecondSegue" {
        let viewController = segue.destinationViewController as! SecondViewController
        viewController.passedVariable = name
    }
}

如您所见,我正在尝试将变量 name 传递给函数 prepareForSegue。正如我所说,我的最终目标是将一个变量传递给另一个 View Controller 并打开该 View 。

现在,prepareForSegue 可以做到这一点,但我只需要传递变量。也许有一种方法可以直接在 func tableView 中执行此操作?

最佳答案

    var name: String?    

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        name = arrDict[indexPath.row].valueForKey("name") as? String
        performSegueWithIdentifier("SecondSegue", sender: nil)

    }

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
        if let viewController = segue.destinationViewController as? SecondViewController {
            if name != nil {
                viewController.passedVariable = name!
            } else {
                 print("failed to get name from dictionary")
            }
        }
    }

我相信这就是您要找的。不要在 cellForRowAtIndexPath 中分配变量名,因为此函数通常在 tableView 的整个生命周期中被多次调用。此外,“名称”需要是一个类变量,以便您可以在一个函数中分配它并在另一个函数中传递它。 cellForRowAtIndexPath 是一个函数,用于分配 tableView 的每个单元格的值和 UI。很少有人用它做任何其他事情。

关于ios - 将变量从 tableView 传递到 prepareForSegue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38537209/

相关文章:

ios - 根据用户是否注册/登录,通过 segue 过渡到某个 ViewController。操作系统

ios - 选定行的自定义复选标记

ios - ios应用程序具有不同背景图像的自定义tableview单元格

ios - Xcode 测试未检测到我的类(class)

ios - 如何更改 AVPlayer 中播放音频的速度?

ios - 是否可以在 Afnetworking POST 方法中发布字典数组?

swift - Dispatch Group 命令在代码中放在哪里?

ios - Tableview 不能用静态数据平滑滚动

ios - 如何在排序数组中将一行代码从 Objective-C 转换为 Swift?

ios - Parse Xamarin SDK 会显着增加 iOS 应用程序的应用程序大小