0

我正在使用 Storyboard,然后在我的 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];

或者

     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,该怎么做?

谢谢

4

1 回答 1

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;
    }
}

希望它可以帮助你。

于 2013-06-16T03:26:23.607 回答