viewWillAppear中的方法和viewDidLoad没有加载

时间:2015-06-30 08:34:44

标签: ios objective-c viewdidload viewwillappear

我创建了一个方法来检查我的viewcontroller中服务器的状态,每次打开应用程序时都需要检查一下。

我从viewWillAppear和viewDidLoad调用[self checkStatus];,但是当我打开应用程序时,通过单击主页按钮,我尝试再次打开应用程序(单击应用程序中的应用程序图标),不会调用此方法。我有一个NSLog可以查看它何时启动。

我很沮丧。谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

您可以使用NotificationCenter

对应用更改做出反应
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething:) name:UIApplicationDidBecomeActiveNotification object:nil];

顺便说一下:当你不需要时,别忘了removeObserver

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

您还可以使用UIApplicationWillEnterForegroundNotification等,具体取决于您的需要。

您应该阅读Apple Developer页面上的应用程序生命周期:)。读:

  • AppleDeveloperLink特别是部分:"应用的执行状态" 了解有关应用生命周期的更多信息。

  • StackOverflowLink了解有关视图生命周期的更多信息。

答案 1 :(得分:1)

iOS没有再次调用这些方法,而是AppDelegate中的委托方法。您必须将消息传播到控制器。

我希望这会对您有所帮助:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/