我有一個標籤欄MainViewController
帶有一些標籤欄按鈕,第一個是View 1
這是一個導航控制器,堆疊最多3或4個孩子。最終的標籤欄按鈕是SettingsViewController
,其中有一個類似於「註銷」的功能,該功能調用AppDelegate上的一個方法,該方法將刪除MainViewController
並將用戶發送回登錄頁面。在標籤欄中彈出一個導航控制器
當按下SettingsViewController
註銷按鈕我希望AppDelegate中設置所選標籤爲View 1
(我做了),向用戶發送到登錄視圖(也做),但也popToRootViewController上View 1
這是我正在努力的一點。
我試着用tabBar上的viewControllers屬性來獲取對索引0處的視圖控制器的引用,但是這看起來不是正確的方式,除非我正確實現它。
我最近嘗試:
// Fine
mainViewcontroller.tabBarController.selectedIndex = 0;
// Not so fine
NSArray *allViewControllers = [mainViewcontroller.tabBarController viewControllers];
View1 *vc = [allViewControllers objectAtIndex:0];
[vc.navigationController popToRootViewControllerAnimated:NO];
在通過所有視圖控制器中的標籤只是迭代和彈出到同樣似乎並沒有工作,根本的另一種嘗試:
for (UIViewController *viewController in mainViewcontroller.tabBarController.viewControllers)
{
[viewController.navigationController popToRootViewControllerAnimated:NO];
}
燦有人幫忙嗎?
你有一個UINavigationController在視圖1嗎? – bontoJR 2012-02-23 10:19:31
我這樣做,是的,這是推視圖1中的附加視圖控制器。在註銷時,我想讓該導航控制器彈出回到開頭。 – Greg 2012-02-23 10:22:47
你究竟如何執行它?你有沒有嘗試過把viewController轉換成你的特定視圖控制器類? – 2012-02-23 10:54:36