2011-02-11 64 views
1

我肯定需要一些澄清時正好viewDidAppear/viewDidDisappear應該方法被稱作......UIViewController的viewDidAppear/viewDidDisappear:何時應該調用那些方法?

  1. 如果應用程序進入背景而呈現出一些人認爲,在這種情況下,我希望viewDidDisappear對被稱爲鏈接到該視圖的UIViewController。另一方面,如果應用程序在後臺進入前景,我期望viewDidAppear被調用。但是這種方式不起作用。
  2. 如果一個UINavigationController顯示一個UIViewController,我們稱之爲'A',並且UIViewController鏈接到一個視圖,該視圖的子視圖鏈接到另一個我們稱之爲'B'的UIViewController,viewDidAppear方法不會在控制器'B'上調用。我必須傳播viewDidAppear自己嗎?我很困惑...

在此先感謝您!

回答

3
  1. 他們不叫,因爲他們不消失,重新出現,除非你告訴他們消失。您的整個申請已被暫停。如果您想知道您的應用是被暫停還是重新激活,您需要聽取應用代理applicationDidBecomeActive:applicationWillResignActive:消息。您也可以註冊通知UIApplicationDidBecomeActiveNotificationUIApplicationWillResignActiveNotification

  2. 是的,你必須手動傳播viewDidAppear:消息到你的子視圖。這是按照設計工作的。

+0

在我的經驗,viewcontrollers的佈局被打破,當你有傳播viewDidAppear爲 「subViewControllers」。我很樂意看到引用「這是按設計工作」 – 2011-02-11 11:30:49

0

還有:

(也是一個應用程序的委託方法):

- (void)applicationDidEnterBackground:(UIApplication *)application 
相關問題