我已經創建了一個方法來檢查我的viewcontroller中的服務器的狀態,我需要檢查這一點,每次我將打開應用程序。viewWillAppear和viewDidLoad中的方法沒有加載
我從viewWillAppear和viewDidLoad調用[self checkStatus];
,但是當我打開應用程序時,通過單擊home按鈕,然後嘗試再次打開應用程序(單擊應用程序中的應用程序圖標),此方法不會被調用。我有一個NSLog來查看它是否啓動。
我很沮喪。謝謝你的幫助。
我已經創建了一個方法來檢查我的viewcontroller中的服務器的狀態,我需要檢查這一點,每次我將打開應用程序。viewWillAppear和viewDidLoad中的方法沒有加載
我從viewWillAppear和viewDidLoad調用[self checkStatus];
,但是當我打開應用程序時,通過單擊home按鈕,然後嘗試再次打開應用程序(單擊應用程序中的應用程序圖標),此方法不會被調用。我有一個NSLog來查看它是否啓動。
我很沮喪。謝謝你的幫助。
可以應對應用使用的變化NotificationCenter
:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething:) name:UIApplicationDidBecomeActiveNotification object:nil];
BTW:不要忘記removeObserver
當你不需要它!
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
您還可以使用UIApplicationWillEnterForegroundNotification
等,這取決於你需要什麼。
你應該閱讀蘋果開發者頁面上的應用生命週期:)。閱讀:
AppleDeveloperLink特別是部分:「執行國應用」更多地瞭解應用程序的生命週期。
StackOverflowLink瞭解更多關於視圖生命週期。
iOS
不是再次調用這些方法,而是在AppDelegate
中委託方法。那麼你必須將消息傳播給你的控制器。
然後,我需要調用每次應用程序出現時打開的方法[self checkStatus]? – MAOL
你必須趕上'AppDelegate'中的動作,然後你必須有一個對控制器的引用。或者你可以使用'NSNotification'將消息發送到其他組件 –
我需要把它放在哪裏?在ViewController中?在視圖上會出現什麼?對不起,我的noob知識。 – MAOL
@Victor_J_Martin你應該把'addObserver'放在你的viewController中,例如在'viewDidLoad'中,'removeObserver'在'dealloc'方法中。 – Vive
謝謝!這是有用的信息 – MAOL