在题为"iOS 上视图控制器的演变"的 WWDC 2012 会议中,- (void)willMoveToParentViewController:(UIViewController *)parent
和- (void)didMoveToParentViewController:(UIViewController *)parent
被提到用于视图转换的自定义容器实现。
如果我没记错的话,似乎需要在- (void)removeFromSuperview
之前或之后显式调用这些方法- (void)addSubview:(UIView *)view
但是,当我将它们记录在子类实现中时,它表明它们已被隐式调用。他们已被自动召唤到正确的位置。
所以,我有点困惑,如果真的需要显式调用这些方法,就像 WWDC 会话中指示的那样,或者可以不遵循它并清除不必要的代码行。
在我的书中解释道:
http://www.apeth.com/iOSBook/ch19.html#_container_view_controllers
基本上,两者中的一个确实是隐式调用的,但另一个您必须显式调用。这太令人抓狂了;我每次都必须查找规则。