2016-09-27 21 views
1

我想要当用户从后台调用应用程序来实现视图控制器中的一个功能吗?iOS Swift如何在应用程序从后台重新加载视图控制器?

+0

在后台模式下使用NSUserdefault中的某些标志值,并检查值是否设置为true,然后调用cal我再次设置标志为虚假希望有道理! –

+0

如果从后台调用viewcontroller再次调用的函数是viewdidload()? –

+0

如果有人正在寻找快速解决方案3去这里: https://stackoverflow.com/a/34529572/6595705 – stream28

回答

1

您可以为这些通知注册您的控制器,并相应地重新加载控制器。

UIApplicationDidEnterBackgroundNotification 
UIApplicationWillEnterForegroundNotification 
+0

在AppDelage我有这个功能,我已经启用背景模式。 –

+0

如果您已经在这些方法中实现了您的功能,那么您面临的问题是什么? –

+0

sry这个函数是在AppDelegate而不是在viewcontroller。这个函数观察控制器内部的应用状态? –

3

在阐述nishith的回答是:

下面的代码添加到您的视图控制器要刷新

override func viewDidLoad() { 
    super.viewDidLoad() 
...... 
...... 
    NSNotificationCenter.defaultCenter().addObserver(self, selector:#selector(YourViewController.methodToRefresh), name:UIApplicationWillEnterForegroundNotification, object:UIApplication.sharedApplication() 
    ) 
...... 
...... 
} 

一定要记住清除时,该视图中消失:

override func viewWillDisappear(animated: Bool) { 
    NSNotificationCenter.defaultCenter().removeObserver(self) 
} 
相关问题