解决FDFullscreenPopGesture连续多个页面隐藏导航栏的BUG

下面的方法可以用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地址

demo效果图:

  1. GIF
    [图片上传失败...(image-75ec2e-1515515375524)]

  2. push
    [图片上传失败...(image-493049-1515515375525)]
    [图片上传失败...(image-b7ba80-1515515375525)]
    [图片上传失败...(image-b0136d-1515515375525)]
    [图片上传失败...(image-87497-1515515375525)]
    [图片上传失败...(image-e99687-1515515375525)]
    [图片上传失败...(image-166811-1515515375525)]

  3. pop
    [图片上传失败...(image-4a2d1-1515515375525)]
    [图片上传失败...(image-8746fb-1515515375525)]
    [图片上传失败...(image-3f5ad8-1515515375525)]
    [图片上传失败...(image-b685a0-1515515375525)]
    [图片上传失败...(image-52db4c-1515515375525)]
    [图片上传失败...(image-7f597e-1515515375525)]

demo效果图注解:

  1. demo中,隐藏导航栏的页面为品红色,显示导航栏的页面为橙黄色。
  2. demo中的页面,点击上面推出显示导航栏页面,点击下面推出隐藏导航栏页面。
  3. demo可以无限推出页面,GIF效果展示图只展示了七个页面(显-隐-隐-显-显-隐-显)
  4. 七个页面包含了连续隐藏导航栏、连续显示导航栏、由隐藏到显示、由显示到隐藏。
  5. 本人还测试了除此之外的多种显隐导航栏的情况,均不会出现BUG。有兴趣的朋友可以自行测试
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容