在我的应用程序中,我有一个按钮,当用户点击它时,它会弹出一个模态视图控制器,它获取用户的位置(UIActivityIndicator
和图像打开)。当它有位置时,它会将它们发送到另一个应用程序。
这适用于较旧的设备(没有多任务处理),因为应用程序在我返回之后只是重新启动回到之前的状态。
然而,在具有多任务处理的设备上,当我恢复应用时,告诉用户它正在获取其位置的视图仍然存在 - 这根本不是所希望的。
我的第一个想法是设置一个BOOL,当它要将它们发送到另一个应用程序时,然后在viewDidAppear
中,如果BOOL为真,则关闭模态视图。
如果在应用程序恢复活动时调用viewDidAppear
,那将会有效。正如我刚才所知,它没有。
当应用程序恢复活动到该视图时,是否有一种视图控制器可以响应的方法?或者,我是否必须与应用代表一起设置委托等?如果是这样,你能解释我会怎么做吗?
答案 0 :(得分:5)
您可以在应用变为有效时发送通知,并将其收听到您的modalviewcontroller中。我认为这是最简单的方法。
// Into the app delegate
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"ApplicationDidBecomeActive" object:nil];
}
// Into your modal view controller register it for the given notification
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidBecomeActive:) name:@"ApplicationDidBecomeActive" object:nil];
- (void)applicationDidBecomeActive:(NSNotification *)notification
{
//...
}
否则,您可以通过在info.plist文件中将“UIApplicationExitsOnSuspend”键设置为YES来禁用应用程序的后台模式。