2013-07-03 58 views
1

TableViewController語境: 這裏是我的應用程序:流行根SplitViewController在TabBarController - iOS設備

Tab 1: NavigationController -> ViewController 

Tab 2: SplitViewController -> NavigationController -> Master : TableViewController ->TableViewController 

          -> NavigationController -> Detail : TableViewController -> TableViewController 


Tab 3: NavigationController -> ViewController (I'm Here) 

如何彈到每個選項卡的根從接頭3(基本上退出按鈕)的方法?

回答

1

我設法完成什麼,我試圖做的,這裏是爲別人尋找答案代碼:

- (void) logout{ 
for(UIViewController *viewController in tabBarController.viewControllers) 
{ 
    if([viewController isKindOfClass:[UINavigationController class]]){ 
     [(UINavigationController*)viewController popToRootViewControllerAnimated:NO]; 
    } 
    else if([viewController isKindOfClass:[UISplitViewController class]]){ 

     UISplitViewController *splitView = (UISplitViewController *)viewController; 
     for (UIViewController *navControllerInSplit in splitView.viewControllers) { 
      if([navControllerInSplit isKindOfClass:[UINavigationController class]]){ 
        [(UINavigationController*)navControllerInSplit popToRootViewControllerAnimated:NO]; 
      } 
     } 
    } 
} 

}

1

//基於UIViewController的標籤即可彈出瀏覽

//試試這個。對於流行到rootview

MyClass *obj = [self.navigationController.viewControllers objectAtIndex:0]; 
[self.navigationController popToViewController:obj animated:YES]; 
+0

這隻能是導航控制器,它的SplitViewControllers我需要彈出。 (在附註中,這對我在包含在navigationContorller中的普通視圖無效) –

0

添加以下代碼UINavigationController其中UITabbarController

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    if ([self.tabBarController.selectedViewController isKindOfClass:[UINavigationController class]]) 
    { 
     [(UINavigationController*)self.tabBarController.selectedViewController popToRootViewControllerAnimated:YES]; 


    } 

} 

參考:View Controller Catalog for iOS

分割視圖控制器必須始終是您創建的任何界面的根。

換句話說,你必須始終從UISplitViewController對象作爲應用程序的窗口根視圖安裝視圖。

您的拆分視圖接口的窗格然後可包含導航 控制器,標籤欄控制器或 需要實現的接口的任何其它類型的視圖控制器。

分割視圖控制器不能以模態方式呈現。

所以,你試圖做的是不正確的,事實上你的應用程序可能會被Apple拒絕。

+0

抱歉,這是我的錯,我錯誤地表示了圖,我更新了我的問題。 –

+0

rootview手段。沒有標籤欄它的UISplitViewController必須是rootview – Vinodh

+0

我敢肯定,只要tabbarcontroller是root,你就可以在tabbarcontroller中擁有一個splitview –