隐藏导航栏 NavigationBar

转自 : 链接:https://www.jianshu.com/p/1f72cd2771fe

第一种方法

  - (void)viewWillAppear:(BOOL)animated {
      [super viewWillAppear:animated];

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

  - (void)viewWillDisappear:(BOOL)animated {
      [super viewWillDisappear:animated];

      [self.navigationController setNavigationBarHidden:NO animated:animated];
  }

第二种方法,代理方法,这种方法强烈推荐,因为push出来的ViewController不会有黑色条:

  @interface WLHomePageController () 

  @end

  @implementation WLHomePageController 

  #pragma mark - lifeCycle
  - (void)viewDidLoad {
      [super viewDidLoad];

     // 设置导航控制器的代理为self
     self.navigationController.delegate = self;
  }

  #pragma mark - UINavigationControllerDelegate
 // 将要显示控制器
  - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
      // 判断要显示的控制器是否是自己
      BOOL isShowHomePage = [viewController isKindOfClass:[self class]];

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

  - (void)dealloc {
      self.navigationController.delegate = nil;
  }

你可能感兴趣的:(隐藏导航栏 NavigationBar)