在应用程序退出时关闭模式视图控制器

Posted

技术标签:

【中文标题】在应用程序退出时关闭模式视图控制器【英文标题】:Dismiss modal view controller on application exit 【发布时间】:2010-08-16 04:48:58 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

在您的应用委托中,您可以通过 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];

【讨论】:

感谢您的回答。我尝试了您的解决方案并且它有效。我还找到了另一个更简单的解决方案,在退出时显示主视图(我在编译时也收到警告): - (void)applicationDidEnterBackground:(UIApplication *)application [self presentModalViewController:viewController.view animated:NO]; 干杯

以上是关于在应用程序退出时关闭模式视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

关闭纵向视图控制器时应用程序崩溃

关闭模式视图时如何在 UITableView 中显示数据

关闭模式视图控制器偶尔冻结应用程序,swift 3

关闭模态视图并调用初始视图控制器

为啥一个简单的模态视图控制器在呈现和关闭时会滞后?

如果存在多个视图控制器,如何关闭模式视图控制器