在解除viewController

时间:2017-03-22 00:27:22

标签: ios swift dismiss

首先让我解释一下我想要归档的场景究竟是什么。

我的rootviewcontroller - > FirstViewController - > DetailViewController - > Detail2ViewController然后返回到FirstViewController,其标签由FirstViewController内的函数更新。

(假设 - >表示按下按钮)

现在我用它来调用上一个viewController:

中的函数
var go = FirstViewController()

self.go.get() //get is the function that updates the textfield text.

self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil) 

现在我打印出我希望成为标签新文本的字符串,但是当我使用这一行时它会起作用:

self.label.text = newone // newone is the new string 

我的日志崩溃了:

  

致命错误:在解包可选值时意外发现nil

当我第一次到达FirstViewController时,同样的功能正常工作,我也尝试使用字符串插入标签文本,如下所示:

self.label.text = "hello"

提前致谢。

编辑:

我忘了放导航控制器。

NavContr - > rootviewcontroller - > FirstViewController - > DetailViewController - > NavContr - > Detail2ViewController

1 个答案:

答案 0 :(得分:1)

var go = FirstViewController()。 每次创建FirstViewController()的新实例时,都不会使用已初始化的viewController实例。据说标签 nil 因此您获得了fatal error。 尝试从堆栈中获取已经初始化的对象(如果您正在使用它并且有一个)。