ios - 关闭 viewController 后更新 outlets

标签 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 

我遇到这个日志崩溃了:

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/

相关文章:

ios - 如何从另一个应用程序启动 iOS 照片应用程序? ( swift )

ios - 如果登录成功,如何关闭登录 View ? swift

ios - SKSpriteNode UserInteractionEnabled 不起作用

ios - UIScrollView 中的跳跃(删除顶部 'page' 时)

ios - 使用一种方法代替多种方法

iphone - 使用分组 TableView 时 IOS 键盘关闭

android - TimePickerDialog 在设置时自动关闭

ios - 单元格宽度对于表格 View 宽度来说太大

swift - UITableView 删除了在 canEditRowAt 中不可编辑的行上的披露指示符和选择

ios - 'auth()' is unavailable : use object construction ' FIRAuth()'