使用Objective-C
您应该UIApplicationWillEnterForegroundNotification
在ViewController
的viewDidLoad
方法中注册一个,只要应用从后台返回,您就可以在注册通知的方法中做任何您想做的事情。当应用程序从后台返回到前景时,不会调用ViewController
的viewWillAppear或viewDidAppear。
-(void)viewDidLoad{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doYourStuff)
name:UIApplicationWillEnterForegroundNotification object:nil];
}
-(void)doYourStuff{
// do whatever you want to do when app comes back from background.
}
不要忘记取消注册您的注册通知。
-(void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
请注意,如果您为注册viewController
,UIApplicationDidBecomeActiveNotification
则每次您的应用程序激活时都会调用您的方法,不建议注册viewController
此通知。
使用Swift
要添加观察者,您可以使用以下代码
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: "doYourStuff", name: UIApplication.willEnterForegroundNotification, object: nil)
}
func doYourStuff(){
// your code
}
要删除观察者,您可以使用swift的deinit功能。
deinit {
NotificationCenter.default.removeObserver(self)
}