3.导航栏侧滑时显示混乱

2017-09-14  本文已影响0人  HaloMartin

问题

导航栏侧滑时显示混乱

如图,导航栏在侧滑时消失了,特别是如果App中导航栏时不时就需要隐藏的时候,这种情况就会很烦,如果没有注意到原因的话,解决这个问题都需要一些时间

解决方法

使导航栏消失和显示时,使用方法:

[self.navigationController setNavigationBarHidden:YES animated:YES]

⚠️注意设置animated参数,比如上图中就是因为设置为NO,导致当前视图控制器消失时,直接就隐藏了导航栏

暂时没有很好的解决方法,目前我是利用视图控制器的生命周期,在viewController即将显示和消失时处理,比如在viewWillAppear和viewWillDisAppear做一些相应的显示和隐藏导航栏的工作

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}
-(void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

效果:

效果

缺点

利用了视图控制器的生命周期来处理,导致比较依赖viewController,每写一个新的viewController,就要重写viewWillAppear和viewWillDisappear方法,而且如果导航栏做了特殊的处理,可能各个viewController的重写方法还会有差异,不同通过简单共同继承一个UIViewController来解决,我就遇到了这种最坏的情况,以后估计得优化一下

资料链接:关于导航控制器使用手势滑动返回上一个界面中途导航条消失的解决办法

上一篇下一篇

猜你喜欢

热点阅读