tab navigationcontroller,从第一个视图开始

时间:2012-09-20 16:59:03

标签: objective-c uinavigationcontroller uitabbarcontroller

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

enter image description here

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

所以,我想要的是,在更改标签时,

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];
   }
 }

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

谢谢!

1 个答案:

答案 0 :(得分:1)

为UITabBarController设置委托,并实现此委托方法:

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