2015-06-30 28 views
0

我已經創建了一個方法來檢查我的viewcontroller中的服務器的狀態,我需要檢查這一點,每次我將打開應用程序。viewWillAppear和viewDidLoad中的方法沒有加載

我從viewWillAppear和viewDidLoad調用[self checkStatus];,但是當我打開應用程序時,通過單擊home按鈕,然後嘗試再次打開應用程序(單擊應用程序中的應用程序圖標),此方法不會被調用。我有一個NSLog來查看它是否啓動。

我很沮喪。謝謝你的幫助。

回答

3

可以應對應用使用的變化NotificationCenter

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething:) name:UIApplicationDidBecomeActiveNotification object:nil]; 

BTW:不要忘記removeObserver當你不需要它!

[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; 

您還可以使用UIApplicationWillEnterForegroundNotification等,這取決於你需要什麼。

你應該閱讀蘋果開發者頁面上的應用生命週期:)。閱讀:

+0

我需要把它放在哪裏?在ViewController中?在視圖上會出現什麼?對不起,我的noob知識。 – MAOL

+0

@Victor_J_Martin你應該把'addObserver'放在你的viewController中,例如在'viewDidLoad'中,'removeObserver'在'dealloc'方法中。 – Vive

+0

謝謝!這是有用的信息 – MAOL

1

iOS不是再次調用這些方法,而是在AppDelegate中委託方法。那麼你必須將消息傳播給你的控制器。

我希望這將幫助你:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/

+0

然後,我需要調用每次應用程序出現時打開的方法[self checkStatus]? – MAOL

+0

你必須趕上'AppDelegate'中的動作,然後你必須有一個對控制器的引用。或者你可以使用'NSNotification'將消息發送到其他組件 –

相關問題