如何在调用applicationDidBecomeActive时告诉活动视图控制器?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (47)

我只想在调用applicationDidBecomeActive时调用当前活动视图控制器上的viewDidLoad或viewDidAppear,这样当我再次从后台启动应用程序时,我可以重置一些动画或其他任何动画。我的一些观点并不关心,但其他人真的需要知道。

我正在使用Storyboards,我的app委托文件具有标准功能 - 但所有都使用EMPTY主体。例如,didFinishLaunchingWithOptions只返回YES而不执行任何操作。故事板自动完成我猜的一切。

那么如何从我空白无信息的应用代理那里与当前的视图控制器进行通信?

提问于
用户回答回答于

Swift版本:

您可以在viewDidLoad中添加此行

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(viewDidBecomeActive), name: UIApplicationDidBecomeActiveNotification, object: nil)

func viewDidBecomeActive(){
    print("viewDidBecomeActive")
}
用户回答回答于

操作系统不会从您的应用代理发送通知,而是自动发送通知,您可以观察到:

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

当然,请确保在dealloc方法之前或之内的某个时间停止观察,方法是:

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

扫码关注云+社区

领取腾讯云代金券