iOS导航栏的一些小技巧

一 隐藏系统导航栏

  • 1 继承UINavigationControllerDelegate
  • 2 在viewWillAppear中设置代理
(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.navigationController.delegate = self;
}
  • 3 判断当前要显示的viewController是不是自己,来设置导航栏的隐藏与否
// 将要显示控制器
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    // 判断要显示的控制器是否是自己
    BOOL target = [viewController isKindOfClass:[self class]];
    [self.navigationController target animated:YES];
}

二 添加系统右滑返回手势

  • 1 继承UIGestureRecognizerDelegate
  • 2 在当前要实现系统右滑返回的控制器中加入 self.navigationController.interactivePopGestureRecognizer.delegate = self 即可
 self.navigationController.interactivePopGestureRecognizer.delegate = self;

三 单独禁止某个页面系统的滑动返回功能

id traget = self.navigationController.interactivePopGestureRecognizer.delegate;
 UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc]initWithTarget:traget action:nil];
 [self.view addGestureRecognizer:pan];
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容