2014-08-30 66 views
0

基本上,我有一个计时器设置在一个uiapplication来检查用户是否空闲,我想要发生的是,如果用户空闲时间足够长,顶部的viewcontroller将成为初始登录之一。如何切换视图控制器从UIApplication

定时器部分的工作原理,我试过用NSlog。

所以基本上,我需要找出当前的视图控制器,如果它不是注册或登录视图控制器,它应该去视图控制器中的初始日志。

如何获取当前视图控制器,然后在UIapplication类中切换?

如果有任何帮助,我使用的是导航控制器,而不是标签栏控制器。

回答

-2

您可以在navigationController堆栈上查看所有视图控制器。

请参阅self.navigationController.topViewController和self.navigationController.visibleViewController;

+0

如果他的应用程序委托不具有'navigationController'特性(它有可能不应该)? – nhgrif 2014-08-30 15:17:04

+0

“如果有任何帮助,我使用的是导航控制器,而不是标签栏控制器。” – Andrey 2014-08-30 15:21:58

+1

我看到并阅读了这部分的问题。他使用导航控制器本身并不能保证他的应用程序委托类具有'navigationController'属性,并不能保证即使他创建了属性,他也能正确设置该属性。 – nhgrif 2014-08-30 15:23:08

0

您可以通过使用sharedApplication单检索应用程序的根视图控制器:

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
UINavigationController *rootNavController = appDelegate.mainWindow.rootViewController; 
// Change to what you want your rootViewController 
+0

你想'mainWindow',而不是'windows'。另外,指出要获取对当前视图控制器的引用可能会有帮助,他可能需要在导航控制器上调用“lastObject”。 – nhgrif 2014-08-30 15:18:38

+0

感谢您的评论,这是一个输入错误,我修复了它 – gsempe 2014-08-30 15:22:22

+0

我现在为您修好了,因为您的修复仍然是错误的。尽管直到您区分导航控制器和位于导航堆栈顶部的视图控制器之间的区别,我仍然无法赞成这一点。 – nhgrif 2014-08-30 15:24:04

相关问题