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];
}
}
我没有测试过这虽然!
hm,我startet一个tabbarapplication,所以我没有一个ViewController.m/ViewController.h的TabBarController ...我只有Tab1ViewController和Tab2ViewController的文件 - 我可以添加它吗? – jacksbox 2012-03-08 18:23:53
我编辑了答案来添加一些额外的代码。希望能帮助到你。 – 2012-03-08 18:45:03
好吧,我已经明白了:我为TabBarController创建了一个新的根视图控制器,并让它自行委派。现在我可以调用ne RootViewController中的didSelectViewController方法。谢谢你的帮助! – jacksbox 2012-03-08 19:04:30