applicationDidEnterBackground fire popToViewController

时间:2013-06-16 00:23:58

标签: ios objective-c navigationcontroller poptoviewcontroller

我正在使用故事板,然后在我的AppDelegate手头没有导航控制器编程(到目前为止一切正常)。

现在我需要触发“applicationDidEnterBackground”我希望我的应用程序指向导航控制器到第一个屏幕(即)popToView或popToRoot。

我尝试使用一些找到的方法:

已编辑: - 插入applicationDidEnterBackgoround方法

//*-- BEGIN
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    _mainMenuDelegate = [[UIStoryboard storyboardWithName: stb_name bundle: nil] instantiateViewControllerWithIdentifier: @ "idMainMenu"];
    [[_window.rootViewController navigationController] popToViewController: _mainMenuDelegate animated: NO];

OR

     NSArray * = viewContrlls _window.subviews;
     for (int i = 0; i <[viewContrlls count], i + +)
     {
        id obj = [viewContrlls objectAtIndex: i];
        if ([obj isKindOfClass: [MainMenu class]])
        {
            [[_window.rootViewController navigationController] popToViewController: obj animated: YES];
            return;
        }
     }
 } //*-- END

但是第一个没有触发,第二个只是1个结果行,它不是MainMenu,所以不要跳转到ViewController。

我的问题是:如何知道我正在使用Storyboard?

谢谢

1 个答案:

答案 0 :(得分:0)

试试:

NSArray* viewControllers = [[_window.rootViewController navigationController] viewControllers];

for (int i = 0; i < [viewControllers count]; i++)
{
    id obj = [viewControllers objectAtIndex: i];

    if ([obj isKindOfClass: [MainMenu class]])
    {
        [[_window.rootViewController navigationController] popToViewController: obj
                                                                      animated: YES];

        return;
    }
}

希望它对你有所帮助。