// 遵循代理 <UITabBarControllerDelegate>
self.tabBarController.delegate = self;
// 相关代理方法如下
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
int index = tabBarController.selectedIndex;
switch (index) {
case 0:
NSLog(@"第1个");
break;
case 1:
NSLog(@"第2个");
break;
case 2:
NSLog(@"第3个");
break;
case 3:
{
UIViewController *vc = [[UIViewController alloc] init];
if ([vc isEqual:viewController]) {
vc.view.backgroundColor = [UIColor redColor];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
vc.hidesBottomBarWhenPushed =NO;
// [viewController presentViewController:nav animated:YES completion:nil];
[((UINavigationController *)tabBarController.selectedViewController) pushViewController:vc animated:YES];
}
}
break;
default:
break;
}
}
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
NSLog(@"shouldselect");
UIViewController *selectTab = tabBarController.selectedViewController;
if ([viewController isEqual:selectTab]) {
NSLog(@"又点我??");
return NO;
}
return YES;
}