我正在向我的应用程序添加一个 tableView,它显示一些新闻项目,单击后,一个新 View 将加载一个显示完整文章的 webview。除了在目标 View 中设置变量(newsURL)之外,一切都有效。我已经尝试了一段时间,但没有成功。
prepareForSegue 函数:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "ShowNewsItem" {
if let destination = segue.destinationViewController as? NewsViewControllerItem {
if let indexPath = tableView.indexPathForSelectedRow()?.row {
destination.newsURL = self.News![indexPath]["link"].stringValue
}
}
}
}
我已经调试了它,除了第三行之外,一切都正常,之后它就不再继续,所以我猜测目的地是 false/nil。我也尝试过这样做 let destination = NewsViewControllerItem()
但这也没有帮助。
我在 NewsViewControllerItem 中定义了 var newsURL = String()
,我试图在 viewDidLoad 中输出它,但它没有输出任何内容。
希望有人知道如何解决这个问题,如果需要其他信息/代码,请告诉我。
最佳答案
因此,正如我们所讨论的,问题在于 NewsViewControllerItem
嵌入在导航 Controller 中,而这是不需要的,因为您的父 View Controller 已经嵌入在导航 Controller 中。
一旦删除 NewsViewControllerItem
的嵌入,它应该可以正常工作。
希望这有帮助。
关于ios - 无法在prepareForSegue中的目标 View 中设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930923/