2011-12-12 60 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

相關問題