2011-12-12 58 views
7

我所有的视图控制器的延长我自己BaseViewController:UIViewController中,在这我已经覆盖停止iOS5的生命周期事件会自动被调用

- (BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers { 
    return NO; 
} 

但是,iOS 5的模拟器已经决定无视这一点,并继续打电话给我viewWillAppear等方法嵌套UIViewController层次结构。

我在另一个项目中做了同样的工作,它工作正常。有什么我想念它让我听吗?

回答

4

原来你也有使用这种方法太:做这个

UIViewController addChildViewController 

所以:

[self addChildViewController:_browserViewController]; 
[browserView addSubview:_browserViewController.view]; 
[_browserViewController didMoveToParentViewController:self]; 

..和从automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers

返回NO ......它停止视图生命周期方法被调用两次。

+1

那么什么是使一些在这两个工程的iOS 4和5 – pottedmeat

+0

好吧,如果你正在运行iOS 4的解决方案 - 你不会得到自动拨打您的嵌套的视图控制器 - 所以你不要有问题被称为两次。 UIViewController容器层次结构仅在iOS 5中引入。您的iOS 4应用程序应该像以往一样工作。注意调用对未来iOS版本新增的未定义选择器。 – bandejapaisa

+0

所以答案是,你必须问在调用它们之前,实例是否可以响应'-addChildViewController:'和'-didMoveToParentViewController:'方法? – pottedmeat

相关问题