3

我需要我的应用程序在任何时候调用一个方法是从不在前台“带回来”。我知道有几种方法可以将应用程序带回屏幕(即单击应用程序图标将其恢复,单击“查看”按钮来自应用程序并在用户主屏幕上弹出的通知,当他们在使用应用程序时锁定设备时解锁设备)。在任何这些情况下,我都需要调用一个方法。我还需要尽早调用该方法,因为 UI 中的某些内容需要根据用户的位置进行更改。

我目前正在使用它来注册方法:

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

这要调用该方法:

- (void)appReturnsActive{
// code in here
}

这似乎不是每次都触发。有谁知道为什么它不工作?任何帮助,将不胜感激!

4

2 回答 2

4

使用 appdelegate 的-applicationWillEnterForeground:或注册UIApplicationWillEnterForegroundNotification

请参阅苹果的文档:UIApplicationDelegate 协议参考

[[NSNotificationCenter defaultCenter]
  addObserver:self
  selector:@selector(appReturnsActive)
  name:UIApplicationWillEnterForegroundNotification
  object:nil];
于 2013-05-26T11:22:53.737 回答
3

从关于该方法的文档中“notificationSelector 指定的方法必须只有一个参数(NSNotification 的一个实例)。” 在 addObserver 调用中的方法名称后加一个冒号,然后在方法中添加一个 NSNotification 实例作为参数......见下文......

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

和方法调用

- (void)appReturnsActive:(NSNotification *)notification{
    // code in here
}
于 2013-05-26T13:30:20.727 回答