iOS版:的TabBar - 标签

问题描述:

我需要一些想法或起点到以下问题的负载默认状态:iOS版:的TabBar - 标签

我有与TabBarView启动一个应用程序 - 在某些标签有其连接不同的意见/ ViewControllers由seques。 如果活动的选项卡已更改,我希望(现在)打开的选项卡加载此选项卡的“开始” - 视图/视图控制器,而不是此选项卡上最后激活的视图/视图控制器。 我该怎么做?

建议你看使用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