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

时间:2011-08-20 11:01:56

标签: iphone ios modalviewcontroller multitasking

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

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

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

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

如果在应用程序恢复活动时调用viewDidAppear,那将会有效。正如我刚才所知,它没有。

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

1 个答案:

答案 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来禁用应用程序的后台模式。

相关问题