在将数据从 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
时,您为什么要创建一个新的NSindexPath
? print(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)
然后您可以在情节提要中设置单元格的标识符
【讨论】:
如果passValue
是nil
,它应该在print(passValue)
崩溃。
哇,我不敢相信我错过了,感谢您指出@Jacobson Talom。忽略我的回答。以上是关于在将数据从 tableView 传递到另一个 viewController Swift 时需要帮助。查看其他示例后继续出错的主要内容,如果未能解决你的问题,请参考以下文章
将数据从 tableview 传递到另一个 tableview
Objective C - 将 JSON 数据从 Tableview 传递到另一个 View Controller
如何使用 SWrevaelviewController swift 3 将数据从 tableview 的特定行传递到另一个视图控制器