Ada*_*m H 4 objective-c multitasking ios
我有一个单视图应用程序.当我点击主页按钮并"最小化"应用程序时,我希望能够在用户重新打开时执行代码.
出于某种原因,当我最小化并重新打开应用程序时,viewDidAppear和viewWillAppear不会执行.
有什么建议?
在此先感谢sAdam
Pau*_*l.s 13
您可以在app delegate中执行代码
- (void)applicationDidBecomeActive:(UIApplication *)application
Run Code Online (Sandbox Code Playgroud)
或注册以观察UIApplicationDidBecomeActiveNotification通知并执行您的代码作为回应.
应用程序委托中还有通知UIApplicationWillEnterForegroundNotification和方法- (void)applicationWillEnterForeground:(UIApplication *)application.
要挂钩通知,请在适当的位置添加此选项
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didBecomeActive:)
name:UIApplicationDidBecomeActiveNotification
object:nil];
Run Code Online (Sandbox Code Playgroud)
定义相应的方法
- (void)didBecomeActive:(NSNotification *)notification;
{
// Do some stuff
}
Run Code Online (Sandbox Code Playgroud)
然后不要忘记在适当的时候移除自己的观察者
[[NSNotificationCenter defaultCenter] removeObserver:self];
Run Code Online (Sandbox Code Playgroud)
讨论
你很可能只希望你的viewController响应事件,因为它是当前活动的视图控制器,所以注册通知viewDidLoad的好地方将是一个好的地方,作为一个观察者将你自己删除viewDidUnload
如果您想要运行viewDidAppear:方法中出现的相同逻辑,则将其抽象为另一个方法,viewDidAppear:并且响应通知的方法调用此新方法.
| 归档时间: |
|
| 查看次数: |
4037 次 |
| 最近记录: |