导航栏无-有的闪现

方法一

1.在BaseNaviController中重写

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {

   [super pushViewController:viewController animated:YES];

   [self setNavigationBarHidden:NO animated:YES];

}

2.在需要隐藏的控制器设置

- (void)viewWillAppear:(BOOL)animated {

   [super viewWillAppear:animated];

   [self.navigationController setNavigationBarHidden:YES animated:YES];

}

方法二

在需要隐藏的控制器中遵守协议

- (void)viewDidLoad {

   [super viewDidLoad];

   self.navigationController.delegate = self;

}

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {

   if ([viewController isKindOfClass:[self class]]) {

       [navigationController setNavigationBarHidden:YES animated:YES];

    } else {

       [navigationController setNavigationBarHidden:NO animated:YES];

    }

}

猜你喜欢

转载自www.cnblogs.com/ios-hejing/p/10741406.html