【问题标题】:NSNotification called after viewDidLoad of next Controller在下一个控制器的 viewDidLoad 之后调用 NSNotification
【发布时间】:2016-10-24 10:53:22
【问题描述】:
我有一个带有两个按钮的登陆菜单页面。
用户单击其中一个后,会在下一个屏幕上发布Notification。
Notification 指向我希望在viewDidload 之前加载的方法。
但是,下一个控制器中的viewDidload 是在通知功能之前完成的。
只有将我的代码包含在 `viewDidappear' 中,我才能使其工作。
但是,我不想每次视图出现时调用它。
【问题讨论】:
标签:
swift
nsnotificationcenter
viewdidload
viewdidappear
【解决方案1】:
如果您在方法中或发送通知之前引用 ViewController 的 view,则会创建 ViewController 的 view 并调用 viewDidLoad 方法。
【解决方案2】:
我会从 viewDidLoad 调用通知指向的方法,而不是直接调用它。这可能会奏效...如果加载该 VC 链接到通知事件。
当一个 VC 被实例化时,它将在其生命周期的顶部调用 viewDidLoad,这是一个相当早的调用。
另外,检查 awakeFromNib: 方法。
nib 加载基础架构向每个
从 nib 存档重新创建的对象,但仅在所有对象之后
存档已加载并初始化。当一个对象收到
一个 awakeFromNib 消息,它保证有它的所有出口和
动作连接已经建立。