从MasterViewController在DetailViewController中设置detailItem时出现奇怪的错误

时间:2015-04-14 17:56:03

标签: ios swift xcode6

我开始随机获取此错误(可能是由于更新swift)但是当我到达,在detailItem中的didSet时,我调用configureView。在configureView中,我检查是否确实设置了detailItem,然后开始为我的出口分配值。

if let detail: Posting = self.detailItem {
        print("detail title is ")
        println(detail.title)

        // Title
        self.titleLabel.text = detail.title

然而,这会导致输出崩溃:

detail title is Skiing in Vail
fatal error: unexpectedly found nil while unwrapping an Optional value

错误在线:

self.titleLabel.text = detail.title

我不明白为什么它会在明显设置时崩溃... 请注意,如果我从viewDidLoad中调用configureView,则不会发生这种情况。

只有当我从

调用它时才会发生这种情况
 var detailItem: Posting? {
    didSet { self.configureView() }
}

我遗失的东西?这是异步工作还是其他什么?

1 个答案:

答案 0 :(得分:0)

参考你对如何实现这一点的评论,有一些思路。首先,您可以直接从MasterVC修改它的原因是因为IBOutlet尚未在DetailVC中实例化,因此无法进行修改。

我可能会遵循的一个选项是在详细信息视图中有一个辅助变量,您可以在其中放置值。然后viewWillAppear()你可以取变量中的任何内容并将其设置为标签的文本。这是一个关于它的教程,但要回答您的具体问题,请跳到本教程中的prepareForSegue方法。它给出了整个过程的一个很好的概述:

http://www.codingexplorer.com/segue-swift-view-controllers/

如果这不能解决您的问题,请告诉我。