0

请帮助,如果您有任何经验,我们的时间很长。

我有这个结构。

AppDelegate...
...Owns a _root ViewController (its view added to window)
...what owns the _main ViewController (its view added to _root's view)
...that has a Navigation controller (its view added to _main's view)
...then different viewControllers travels in this navigation stack.

但是 viewDidAppear/viewWillAppear 方法不会在最里面的视图中被调用。我不知道为什么。

当我阅读文档时,它说“添加到窗口时”。它们适用于 Windows 吗?不要这么想。我该怎么办?为什么不调用这些 CRUTIAL 方法?

4

1 回答 1

1

框架不允许嵌套视图控制器。

是的,Apple 确实做到了(例如,通过让您将其中一个 UIViewController 嵌入选项卡/导航视图控制器中),但是他们会知道如何做到这一点。

通过将正确的消息从外部视图控制器转发到内部视图控制器,这仍然是可能的,但它需要非常小心,并且可能不是很面向未来。不过,它可能会节省您的时间!即,如果您在_root 中获得viewWillAppear,则将其转发到其子视图控制器等。如果您设法为所有外观/消失、旋转、内存管理正确执行此操作,那么您很好。

两年过去了,现在支持嵌套视图控制器:http: //developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html#//apple_ref/doc/uid/TP40007457-CH18-SW6

于 2011-03-21T12:47:49.133 回答