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

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

【问题讨论】:

    标签: objective-c iphone modalviewcontroller


    【解决方案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]; } 干杯
    猜你喜欢
    • 1970-01-01
    • 2012-08-09
    • 2013-08-04
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2013-11-30
    相关资源
    最近更新 更多