系统导航栏侧滑缺失

2020-12-15  本文已影响0人  DSA碼侬

例如:
控制器A内设置:

- viewWillAppear:中
self.navigationController.navigationBarHidden = YES;
- viewWillDisappear:中
self.navigationController.navigationBarHidden = NO;

要求控制器B的导航正常显示,所以在控制器B内什么都不需要做!

控制器A-push->控制器B之后,再由控制器B侧滑至控制器A情况:

控制器A:

VCA.png

控制器B:

VCB.png

侧滑过程中:

侧滑过程中.png

侧滑过程中,执行了控制器AviewWillAppear:的方法,导致如上图所示导航栏消失。
解决办法有两个,分别如下:
1、禁止侧滑

// 在A中- viewDidLoad中添加如下代码禁止侧滑
    id traget = self.navigationController.interactivePopGestureRecognizer.delegate;
    UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc] initWithTarget:traget action:nil];
    [self.view addGestureRecognizer:pan];

2、修改控制器A的导航栏的消失与显示

- viewWillAppear:中
[self.navigationController setNavigationBarHidden:YES animated:animated];
- viewWillDisappear:中
[self.navigationController setNavigationBarHidden:NO animated:animated];

采用第二种方法之后:

修复后.png
上一篇 下一篇

猜你喜欢

热点阅读