在将数据从 tableView 传递到另一个 viewController Swift 时需要帮助。查看其他示例后继续出错

Posted

技术标签:

【中文标题】在将数据从 tableView 传递到另一个 viewController Swift 时需要帮助。查看其他示例后继续出错【英文标题】:Need help in passing data from tableView to another viewController Swift. Keep having error after looking through other examples 【发布时间】:2016-01-22 01:17:18 【问题描述】:
var passValue:String!
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 
    var indexPath1 = tableView.indexPathForSelectedRow
    var cell = tableView.cellForRowAtIndexPath(indexPath1!)
    passValue = (cell?.textLabel?.text)!
    print(passValue)
    performSegueWithIdentifier("pushy", sender: self)


override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
    if segue.identifier == "pushy"
    
      var viewController1 = segue.destinationViewController as! home

      viewController1.nameLbl.text = passValue// This is the error highlighted
      self.presentViewController(viewController1, animated: true, completion: nil)
    

我一直有错误;致命错误:在展开 Optional 值时意外发现 nil。

【问题讨论】:

tableView(didSelectRowAtIndexPath:) 已经为您提供了一个NSindexPath 时,您为什么要创建一个新的NSindexPathprint(passValue) 打印什么? @JacobsonTalom 也许我应该删除它。我查了一些其他的例子。 print(passValue) 打印单元格 textLabel。我只是无法将单元格 textLabel 传递到另一个 viewController 在调试区域的左侧面板中,哪个变量显示为nil?您可能正在测试一些东西,但仍然尝试尽可能少地使用隐式展开。它会导致像你现在遇到的问题。 它说 passValue=(String!) nil。在实现 prepareForSegue passValue 之前有它的值。如果我要阻止代码,则会打印这些值。 【参考方案1】:

确保 viewController1 和 nameLbl 的值不是 nil !祝你好运!

【讨论】:

【参考方案2】:

看起来 passValue 是 nil。由于它是! 所表示的隐式解包选项,因此当使用该值时,计算机找不到它并因此崩溃。因此,(cell?.textLabel?.text)! 在您的示例中为零。也许试试这个......

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 
let cell = tableView.dequeueReusableCellWithIdentifier("Cell identifier")
passValue = cell?.textLabel?.text
print(passValue)
performSegueWithIdentifier("pushy", sender: self)

然后您可以在情节提要中设置单元格的标识符

【讨论】:

如果passValuenil,它应该在print(passValue) 崩溃。 哇,我不敢相信我错过了,感谢您指出@Jacobson Talom。忽略我的回答。

以上是关于在将数据从 tableView 传递到另一个 viewController Swift 时需要帮助。查看其他示例后继续出错的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 tableview 传递到另一个 tableview

Objective C - 将 JSON 数据从 Tableview 传递到另一个 View Controller

如何使用 SWrevaelviewController swift 3 将数据从 tableview 的特定行传递到另一个视图控制器

从表视图到另一个表视图之间传递数据(多)[重复]

将数据从 tableviewcell 传递到另一个 viewcontroller

将标签数据从表视图传递到另一个视图控制器