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

https://www.jianshu.com/p/6533c7a55c34

下面的方法可以用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. demo中,隐藏导航栏的页面为品红色,显示导航栏的页面为橙黄色。
  2. demo中的页面,点击上面推出显示导航栏页面,点击下面推出隐藏导航栏页面。
  3. demo可以无限推出页面,GIF效果展示图只展示了七个页面(显-隐-隐-显-显-隐-显)
  4. 七个页面包含了连续隐藏导航栏、连续显示导航栏、由隐藏到显示、由显示到隐藏。
  5. 本人还测试了除此之外的多种显隐导航栏的情况,均不会出现BUG。有兴趣的朋友可以自行测试
https://github.com/sundayios/FDFullscreenPopGestureBUG-master/tree/master

作者:_moses
链接:https://www.jianshu.com/p/6533c7a55c34
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
 
 
 
 
posted @ 2019-04-12 18:00  sundaysios  阅读(933)  评论(0编辑  收藏  举报