2012-03-08 86 views
0

我需要一些想法或起點到以下問題的負載默認狀態:iOS版:的TabBar - 標籤

我有與TabBarView啓動一個應用程序 - 在某些標籤有其連接不同的意見/ ViewControllers由seques。 如果活動的選項卡已更改,我希望(現在)打開的選項卡加載此選項卡的「開始」 - 視圖/視圖控制器,而不是此選項卡上最後激活的視圖/視圖控制器。 我該怎麼做?

回答

1

建議你看使用UITabBarDelegate方法:tabBarController:didSelectViewController:

UINavigationController方法相結合:popToRootViewControllerAnimated:

因此,當用戶選擇一個選項卡,可以確保導航從根控制器開始。

編輯迴應評論:

這不是一個理想的情況,但你可以在應用程序委託引用的UITabBarController。例如: -

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Get reference to Tab Bar Controller as the root view 
    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; 

    // Set Delegate 
    tabBarController.delegate = self; 

    return YES; 
} 

然後,您可以實現類似UITabBarDelegate方法:

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    // Pop to root if the selected controller is a navigation controller. 
    if ([viewController isKindOfClass:[UINavigationController class]]) { 
     [((UINavigationController *)viewController) popToRootViewControllerAnimated:NO]; 
    } 
} 

我沒有測試過這雖然!

+0

hm,我startet一個tabbarapplication,所以我沒有一個ViewController.m/ViewController.h的TabBarController ...我只有Tab1ViewController和Tab2ViewController的文件 - 我可以添加它嗎? – jacksbox 2012-03-08 18:23:53

+0

我編輯了答案來添加一些額外的代碼。希望能幫助到你。 – 2012-03-08 18:45:03

+0

好吧,我已經明白了:我爲TabBarController創建了一個新的根視圖控制器,並讓它自行委派。現在我可以調用ne RootViewController中的didSelectViewController方法。謝謝你的幫助! – jacksbox 2012-03-08 19:04:30