我的应用程序是基于Tab的应用程序,在某些选项卡中有导航控制器。
如果我在视图中导航,当我在第二个视图中(在导航中)并更改选项卡时,当我再次单击选项卡时,它会在我完成时从第二个视图开始。
所以,我想要的是,在更改标签时,
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];
}
}
解决了!我用代码编辑我的帖子
谢谢!
答案 0 :(得分:1)
为UITabBarController设置委托,并实现此委托方法:
-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if ([viewController isKindOfClass:[UINavigationController class]]) {
[(UINavigationController*)viewController popToRootViewControllerAnimated:YES];
}
}