2012-04-23 52 views
2

我視圖控制器的如下的佈局:如何返回複雜場景中的第一個viewController?

loginViewController -> tabBarViewController -> navigationViewController -> mainTableViewController -> logoutViewController. 
              \ 
              --> navigationViewController -> secondaryTableViewController             

如果用戶成功登錄他去tabBarViewController的第一個選項卡本身是從navigationViewController第一的viewController(所述mainTableViewController)。考慮到這個mainTableViewController顯示了幾個選項,每個選項都會導致它自己的viewController,它是logoutViewController的一個選項。

在logoutView我有一個註銷按鈕(很酷?),如果註銷成功,我想回到loginViewController。

我打過電話:

[self.navigationController popToRootViewControllerAnimated:NO]; 

從logoutViewController但沒有任何反應。我搜索了其他類似的問題,但其中大多數都建議使用popToRootViewControllerAnimated。我不認爲這很簡單,因爲我有從viewController推送的tabBarController推送的navigationController。這樣做的最好方法是什麼?

我希望這不是太混亂。謝謝。

+0

也許我可以將loginViewController存儲在tabBarController的屬性中並使用[self popToViewController:tabBarController.loginViewController]? – JSeven 2012-04-23 16:54:26

回答

0

我假設路徑是以某種LiFo方式存儲的;你爲什麼不直接跳到count = 1?

+0

你的意思是調用popViewController並在循環中計數返回的數組? – JSeven 2012-04-23 14:00:29

+0

我沒有具體的例子,更多的是一般的編程參考。如果您將路徑存儲在堆棧中並執行以下操作:請push loginViewController,Push tabBarViewController,Push navigationviewcontroller。如果您檢查堆棧的計數,它會列出3.因此,var ThisWillBeTheLoginController; while(Stack.Count> 0)ThisWillbeTheLoginController = Stack.Pop();這應該讓你使用loginViewController。不知道它將如何轉化爲ObjectiveC,但這種模式應該基本上可以用任何語言編程。示例:http://stackoverflow.com/questions/7567827/last-in-first-out-stack-with-gcd – NKCSS 2012-04-23 14:35:27

相關問題