我在iOS 5.0上面臨自定義視圖控制器子類的奇怪行爲。我沒有在iPad應用程序中使用標準導航控制器等,但是我自己提供了所有視圖控制器 - 這就是爲什麼我需要手動調用-viewWillAppear和viewDidAppear方法。iOS 5.0查看生命週期問題
從iOS 5.0開始,將視圖控制器的視圖作爲子視圖添加時,這些方法在視圖的視圖控制器實例上自動調用。這意味着這些方法在我的情況下被調用兩次。
有什麼建議嗎?除了創建我自己的視圖生命週期方法和重寫整個應用程序?
非常感謝!
我在iOS 5.0上面臨自定義視圖控制器子類的奇怪行爲。我沒有在iPad應用程序中使用標準導航控制器等,但是我自己提供了所有視圖控制器 - 這就是爲什麼我需要手動調用-viewWillAppear和viewDidAppear方法。iOS 5.0查看生命週期問題
從iOS 5.0開始,將視圖控制器的視圖作爲子視圖添加時,這些方法在視圖的視圖控制器實例上自動調用。這意味着這些方法在我的情況下被調用兩次。
有什麼建議嗎?除了創建我自己的視圖生命週期方法和重寫整個應用程序?
非常感謝!
從WWDC11檢出Session 102 - Implementing UIViewController Containment。
在iOS 5上,您需要使用正確的視圖控制器控制。
以下添加到您的UIViewController來禁用這些-viewWill ...和... -viewDid方法自動呼叫:
-(BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers {
return NO;
}
這將迫使的iOS 5.0停止添加子視圖時調用這些方法,並且不會破壞iOS 4.x的任何功能。只要我繼續支持iOS 4.x上的設備,我就會使用這種方法。一旦我放棄對iOS 4的支持,我將重構我的代碼以使用交換視圖控制器的新方法(如hypercrypt發佈的會話102視頻中所述)。