无法在prepareForSegue中的目标视图中设置变量

时间:2015-08-10 23:43:28

标签: ios swift xcode6

我在我的应用程序中添加了一个tableView,其中显示了一些新闻项目,点击后,新视图将加载一个显示完整文章的webview。除了在目标视图中设置变量(newsURL)之外的所有工作都有效。我已经尝试了一段时间,但我没有让它发挥作用。

prepareForSegue func:

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
            }
        }
    }
}

我已经调试了它,除了第三行之外一切正常,它在此之后根本就没有继续,所以我猜测目的地是假/零。我也试过let destination = NewsViewControllerItem(),但这也没有帮助。

我在NewsViewControllerItem中定义了var newsURL = String(),我试图在viewDidLoad中输出它,但它没有输出任何东西。

希望有人知道如何解决这个问题,如果需要其他信息/代码,请告诉我。

1 个答案:

答案 0 :(得分:0)

因此,正如我们所讨论的那样,问题在于NewsViewControllerItem嵌入在导航控制器中,由于您的父视图控制器已嵌入导航控制器中,因此不需要。

删除NewsViewControllerItem的嵌入后,它应该可以正常工作。

希望这有帮助。