停止自动调用ios5生命周期事件

ban*_*isa 7 objective-c uiviewcontroller ios ios5

我的所有视图控制器都扩展了我自己的BaseViewController:UIViewController,在这里我已经被覆盖了

- (BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers {
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

但是,iOS 5模拟器决定忽略这一点并继续在我的嵌套UIViewController层次结构上调用我的viewWillAppear等方法.

我在另一个项目中做了同样的事情并且运行良好.是否还有其他东西让我听到它?

ban*_*isa 4

事实证明你也必须使用这个方法:

UIViewController addChildViewController
Run Code Online (Sandbox Code Playgroud)

所以通过这样做:

[self addChildViewController:_browserViewController];
[browserView addSubview:_browserViewController.view];
[_browserViewController didMoveToParentViewController:self]; 
Run Code Online (Sandbox Code Playgroud)

..并从automaticForwardAppearanceAndRotationMethodsToChildViewControllers返回NO

...它阻止视图生命周期方法被调用两次。