在应用程序出口上关闭模态视图控制器

时间:2010-08-16 04:48:59

标签: objective-c iphone modalviewcontroller

当用户按下按钮时,我有一个视图控制器(视图A)呈现模态视图(B),视图B本身有一个按钮来呈现视图C.我的问题是如果用户退出应用程序时如果显示视图B或C,则下次启动应用程序时将显示相同的视图。有没有办法在退出时关闭视图B和C,或者在应用程序启动时显示视图A? 谢谢你的帮助

1 个答案:

答案 0 :(得分:6)

我假设关闭时你的意思是当应用程序进入后台时。

在您的app委托中,您可以通过applicationDidEnterBackground:方法关闭您的控制器。

最好的方法可能是在视图控制器类中添加一个观察者:

- (void) viewDidLoad {
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appClosing) name:@"appClosing" object:nil];
}

- (void) dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"appClosing" object:nil];
    [super dealloc];
}

- (void) appClosing
{
    [self dismissModalViewControllerAnimated:YES];
}

并在您的应用代表中发布通知:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
     [[NSNotificationCenter defaultCenter] postNotificationName:@"appClosing" object:nil];
}