下面的方法可以用FDFullscreenPopGesture实现相邻页面的导航栏任意交替隐藏和显示(主要解决连续多个页面隐藏导航栏出现的BUG)
实现方法:
- 在所有需要隐藏导航栏的页面加上如下代码
@property (nonatomic, assign) BOOL previousNaviBarShow;
#import "UINavigationController+FDFullscreenPopGesture.h"
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// 在所有需要隐藏导航栏的页面加上这两行代码,所有需要显示导航栏的页面不做任何操作即可
self.fd_prefersNavigationBarHidden = YES;
[self.navigationController setNavigationBarHidden:YES animated:self.previousNaviBarShow];
}
- 在所有 由(显示导航栏页面)推出(隐藏导航栏页面)的地方,把要推出页面的
previousNaviBarShow
置为YES
demo效果图:
GIF
[图片上传失败...(image-75ec2e-1515515375524)]push
[图片上传失败...(image-493049-1515515375525)]
[图片上传失败...(image-b7ba80-1515515375525)]
[图片上传失败...(image-b0136d-1515515375525)]
[图片上传失败...(image-87497-1515515375525)]
[图片上传失败...(image-e99687-1515515375525)]
[图片上传失败...(image-166811-1515515375525)]pop
[图片上传失败...(image-4a2d1-1515515375525)]
[图片上传失败...(image-8746fb-1515515375525)]
[图片上传失败...(image-3f5ad8-1515515375525)]
[图片上传失败...(image-b685a0-1515515375525)]
[图片上传失败...(image-52db4c-1515515375525)]
[图片上传失败...(image-7f597e-1515515375525)]
demo效果图注解:
- demo中,隐藏导航栏的页面为品红色,显示导航栏的页面为橙黄色。
- demo中的页面,点击上面推出显示导航栏页面,点击下面推出隐藏导航栏页面。
- demo可以无限推出页面,GIF效果展示图只展示了七个页面(显-隐-隐-显-显-隐-显)
- 七个页面包含了连续隐藏导航栏、连续显示导航栏、由隐藏到显示、由显示到隐藏。
- 本人还测试了除此之外的多种显隐导航栏的情况,均不会出现BUG。有兴趣的朋友可以自行测试