Ios 需要帮助将数据从tableView传递到另一个viewController Swift。在查看其他示例后,继续出现错误
我一直有错误;致命错误:在展开可选值时意外发现nil。请确保viewController1和nameLbl的值不是nil!祝你好运 看起来passValue是nil。因为它是一个隐式展开的可选项,如Ios 需要帮助将数据从tableView传递到另一个viewController Swift。在查看其他示例后,继续出现错误,ios,swift,tableview,Ios,Swift,Tableview,我一直有错误;致命错误:在展开可选值时意外发现nil。请确保viewController1和nameLbl的值不是nil!祝你好运 看起来passValue是nil。因为它是一个隐式展开的可选项,如所示,当使用该值时,计算机无法找到它,因此崩溃(单元格?.text标签?.text)为零。也许试试这个 var passValue:String! override func tableView(tableView: UITableView, didSelectRowAtIndexPath index
所示代码>,当使用该值时,计算机无法找到它,因此崩溃<代码>(单元格?.text标签?.text)因此,在您的示例中,code>为零。也许试试这个
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)
}
}
然后可以在情节提要中设置单元格的标识符当tableView(didSelectRowatineXpath:)
已经为您提供了一个标识符时,为什么要创建一个新的NSindexPath
?那么print(passValue)
print是什么呢?@JacobsonTalom也许我应该把它删除掉。我查阅了其他一些例子。打印(passValue)打印单元格文本标签。我无法将单元格文本标签传递到左侧面板调试区域中的另一个ViewController上,哪个变量显示为nil
?您可能正在测试一些东西,但仍然尝试尽可能少地使用隐式展开。它会导致像现在这样的问题。它表示passValue=(String!)nil。在实现prepareForSegue之前,passValue具有其值。如果我把代码屏蔽掉,值就会被打印出来。如果passValue
是nil
,它应该在print(passValue)
上崩溃。哇,我不敢相信我错过了,谢谢你指出@Jacobson Talom。忽略我的回答。
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell identifier")
passValue = cell?.textLabel?.text
print(passValue)
performSegueWithIdentifier("pushy", sender: self)
}