【发布时间】:2010-10-28 02:22:24
【问题描述】:
更新
已经提到,根据文档不会调用 viewWillAppear 和 viewDidAppear。 但是,我没有在这些方法中执行初始化,也没有向视图添加 UI 元素。
我只是用它们来放置断点来尝试调试。
还有其他想法吗?
原始问题
我被难住了。我正在重构一些代码并且遇到了一些奇怪的行为......
我在没有 nib 的情况下初始化 viewController A 并以编程方式设置视图。
控制器 A 中的 viewDidLoad 被调用。
在 viewController A 的 viewDidLoad 中,我从一个 nib 初始化 viewController B。
我将 viewControllerB.view 添加为 viewControllerA.view 的子视图
控制器 B 的 viewDidload 被调用。
然后就变得奇怪了:
viewWillAppear 和 viewDidAppear viewController B 从不得到 调用。
viewControllerB.view 从不 它在屏幕上。
无错误。
我检查的内容:
viewControllerBs Nib 的名称是正确的。
viewControllerB 的视图出口连接到一个视图。
viewControllerB 和它的视图都是非零的。
最重要的是,SDK [redacted] beta 5 中一切正常!
有什么想法吗? 这一定是件很傻的事..
【问题讨论】:
-
所以这适用于 sdk3 但不适用于早期的?
-
查看 Ramin 关于 viewWillAppear 之谜的回答。它在文档中,但不容易找到。不知道为什么 viewControllerB 永远不会出现在屏幕上。您是否在 viewWillApeear 中进行任何重要的初始化?
-
+1 用于在此处提问之前检查的事项列表
-
不,我在 viewDidLoad(s) 之外不执行任何初始化,是的,它在 3.0 中工作,我继续通过为 3.0 编译来进行正常编码,但我真的希望在 2.2 中进行编译.1 以及
标签: iphone cocoa-touch uikit