应用程序激活时删除模态视图控制器

Ale*_*lan 1 iphone multitasking modalviewcontroller ios

在我的应用程序中,我有一个按钮,当用户点击它时,它会弹出一个模态视图控制器,它获取用户的位置(带有UIActivityIndicator图像和图像).当它有位置时,它会将它们发送到另一个应用程序.

这适用于较旧的设备(没有多任务处理),因为应用程序在我返回之后只是重新启动回到之前的状态.

但是在具有多任务处理的设备上,当我恢复应用程序时,告诉用户它正在获取其位置的视图仍然存在 - 这根本不是所希望的.

我的第一个想法是设置一个BOOL,当它要将它们发送到另一个应用程序时,然后在viewDidAppear,如果BOOL为真,则关闭模态视图.

如果viewDidAppear在应用程序恢复活动时被调用,那将会有效.正如我刚才所了解的那样,事实并非如此.

有一种方法,视图控制器可以响应应用程序恢复活动到该视图的时间吗?或者,我是否必须与应用代表一起设置委托等?如果是这样,你能解释一下我会怎么做吗?

Yan*_*iot 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
{
//...
}
Run Code Online (Sandbox Code Playgroud)

否则,您可以通过在info.plist文件中将"UIApplicationExitsOnSuspend"键设置为YES来禁用应用程序的后台模式.