applicationDidEnterBackground 触发 popToViewController
Posted
技术标签:
【中文标题】applicationDidEnterBackground 触发 popToViewController【英文标题】:applicationDidEnterBackground fire popToViewController 【发布时间】:2013-06-16 00:23:58 【问题描述】:我正在使用 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,该怎么做?
谢谢
【问题讨论】:
【参考方案1】:试试看:
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;
希望对你有帮助。
【讨论】:
这不是问题。问题是它没有跳转到视图控制器。这个循环进入1次,但是这1次不是我想去的viewcontroller,所以不去。即使插入到手头,作为第一块代码,也不会 我正在编辑我的代码并插入我试图用 applicationDidEnterBackgoround 做的所有部分 我编辑了我的问题以显示我在做什么。你的代码无论如何都不起作用。以上是关于applicationDidEnterBackground 触发 popToViewController的主要内容,如果未能解决你的问题,请参考以下文章