【发布时间】:2012-03-08 17:47:56
【问题描述】:
我需要一些想法或起点来解决以下问题:
我有一个以 TabBarView 开头的应用程序 - 在某些选项卡中有不同的视图/视图控制器,它们通过序列连接。 如果更改了活动选项卡,我希望(现在)打开的选项卡加载此选项卡的“开始”-视图/视图控制器,而不是最后一次在此选项卡上活动的视图/视图控制器。 我该怎么做?
【问题讨论】:
标签: ios xcode ipad uitabbarcontroller uitabbar
我需要一些想法或起点来解决以下问题:
我有一个以 TabBarView 开头的应用程序 - 在某些选项卡中有不同的视图/视图控制器,它们通过序列连接。 如果更改了活动选项卡,我希望(现在)打开的选项卡加载此选项卡的“开始”-视图/视图控制器,而不是最后一次在此选项卡上活动的视图/视图控制器。 我该怎么做?
【问题讨论】:
标签: ios xcode ipad uitabbarcontroller uitabbar
我建议你看看使用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];
}
}
不过我还没有测试过!
【讨论】: