我正在使用故事板,然后在我的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?
谢谢
答案 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;
}
}
希望它对你有所帮助。