应用程序进入后台时的popToRootViewController

时间:2012-07-28 14:03:01

标签: iphone ios cocoa-touch uiviewcontroller uinavigationcontroller

在我的应用程序的didFinishLaunchingWithOptions中,代码是

   _homeViewController = [[HomeViewController alloc]init];
    UINavigationController*  _navigationController = [[UINavigationController alloc] initWithRootViewController:_homeViewController];
    [self.window setRootViewController:_navigationController];
    [_navigationController setNavigationBarHidden:YES];
    [self.window makeKeyAndVisible];

并且在HomeViewController中,我有两个按钮,如果按下按钮,我将呈现ViewController。如果按下button1,则代码为

if (_detailsViewController == nil)
            _detailsViewController = [[DetailsViewController alloc]init];

       [self.navigationController presentModalViewController:_detailsViewController animated:YES];

现在,当我在detailsViewController中并按下iPhone Home按钮时,在同一个类中我使用UIApplicationDidEnterBackgroundNotification并调用方法来执行以下行

[self.navigationController popToRootViewControllerAnimated:YES];

所以我想当我再次打开应用程序时,我可以看到HomeViewController,但它不起作用。请帮帮我!!

2 个答案:

答案 0 :(得分:0)

当您进入背景时,保存一条状态信息,当您重新进入前景时,检查该信息,如果设置了标志,则在没有动画的情况下进行弹出。

答案 1 :(得分:0)

似乎我无法弹出到根视图的原因是,我在其间展示ViewController,如果ViewController随导航控制器一起出现,即如果ViewController被推送为导航控制器那么我可以弹出到根视图控制器