首先让我解释一下我要归档的场景到底是什么。
我的 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
我遇到这个日志崩溃了:
fatal error: unexpectedly found nil while unwrapping an Optional value
当然,当我第一次到达 FirstViewController 时,同样的功能正在工作,我还尝试使用字符串插入到标签文本中,如下所示:
self.label.text = "hello"
提前致谢。
编辑:
我忘了放导航 Controller 。
NavContr -> rootviewcontroller -> FirstViewController -> DetailViewController -> NavContr ->Detail2ViewController
最佳答案
var go = FirstViewController()
。
每次这都会创建一个新的 FirstViewController()
实例,并且不会使用您已经初始化的 viewController
实例。据报道,标签 将为nil,因此您会收到 fatal error
。
尝试从堆栈中获取您已经初始化的对象(如果您正在使用它并且有一个)。
关于ios - 关闭 viewController 后更新 outlets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42940628/