0

我的应用程序是基于选项卡的应用程序,在某些选项卡中有导航控制器。

在此处输入图像描述

如果我在视图中导航,并且当我在第二个视图(在导航中)并更改选项卡时,当我再次单击选项卡时,它会在我完成后从第二个视图开始。

所以,我想要的是在更改选项卡时,

popToRootViewControllerAnimated:

影响。所以,我总是从第一个视图开始。

我怎样才能做到这一点?

谢谢!

根据 Bart Whiteley 的回答,我的 MainTab.h,我在我的项目中添加了一些代码:

#import <UIKit/UIKit.h>

@interface MainTab : UITabBarController <UITabBarControllerDelegate,UITabBarDelegate>

@end

MainTab.m:

- (void)viewDidLoad
  {
   [super viewDidLoad];

   NSLog(@"this class is loaded");
   self.tabBarController.delegate = (id)self;
   [self setDelegate:self];
 }


 -(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
 {
  NSLog(@"changing tab");
   if ([viewController isKindOfClass:[UINavigationController class]]) {
     [(UINavigationController*)viewController popToRootViewControllerAnimated:YES];
   }
 }

解决了!我用代码编辑我的帖子

谢谢!

4

1 回答 1

1

为 UITabBarController 设置一个委托,并实现这个委托方法:

-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
   if ([viewController isKindOfClass:[UINavigationController class]]) {
     [(UINavigationController*)viewController popToRootViewControllerAnimated:YES];
   }
}
于 2012-09-20T17:31:16.153 回答