2014-08-30 46 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

相關問題