在tab主页的UIViewController
中的viewWillAppear:里写self.hidesBottomBarWhenPushed = NO;
,显示tabBar,在子VC
中,隐藏tabBar(重写UINavigationController
,在里面重写方法- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{}
):
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES];
// [self.navigationController setHidesBottomBarWhenPushed:YES];
self.hidesBottomBarWhenPushed = NO;
}
KBaseNavigationController.h
@interface KBaseNavigationController : UINavigationController
@end
KBaseNavigationController.m
#import "KBaseNavigationController.h"
@interface KBaseNavigationController ()
@end
@implementation KBaseNavigationController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
if (self.viewControllers.count > 0) {
viewController.hidesBottomBarWhenPushed = YES;
} else {
viewController.hidesBottomBarWhenPushed = NO;
}
[super pushViewController:viewController animated:animated];
}
@end