解决苹果导航栏隐藏显⽰的问题
⾸先是出现的问题:
1.push⼀个控制器,返回按钮和标题神奇的消失了,打开三维视图(⽐较坑的是有的版本⽼到打不开三维视图
),发现返回按钮和标题并没有消失,⽽是被⼀层视图挡到了。
  2.有⽂本输⼊的地⽅,在iOS10中⽂本框也消失了,导致⽆法输⼊内容。
  3.权限问题。
其次是解决思路:
  1.顶层被莫名其妙的加了⼀层视图,感觉是⾃定义的导航栏的背景视图的层次出问题了,所以查看了⾃定义的导航栏,但是并没有,后来问了问,有⼀个应急的解决办法,就是给导航栏设置背景⾊,颜⾊取背景图⽚的颜⾊,在每⼀个⽤到该导航栏的试图控制器的viewWillAppear⽅法中重新设置⼀下导航栏,在viewWillDisappear⾥也重新设置⼀下。
  但是上⾯的⽅法仅适⽤于导航栏颜⾊为纯⾊,,所以为了更灵活,还有另⼀种⽅法,就是在viewWillAppear和viewWillDisappear⽅法⾥先将视图控制器的导航栏隐藏然后再显⽰
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:NO];
[self.navigationController setNavigationBarHidden:NO animated:NO];
江西旅游}
约定 歌词
-(void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:YES animated:NO];西蒙子
窃格瓦拉
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
  第⼀次看到上⾯的代码时,我也跟你⼀样感到诧异,可是神奇的是它确实奏效了。池珍熙妻子
  为什么呢?简书的⼀位作者写过类似的博客,⾥⾯提到的原因是“iOS10在加载导航栏是总会加载系统的”。如果他说得对的话,也就是说push时系统会将⾃带的导航栏置顶,⽽隐藏后再显⽰只会显⽰⾃定义的导航栏。
  可是问题⼜来了,如果每⼀个视图控制器都加了上⾯的代码也是有问题的,问题是如果某视图控制器不需要继续push,那么该视图控制器会不能很好地适配iOS10,有时会返回到修改前的状态。解决⽅法是在进⼊该视图时判断是否需要跳转,如果需要继续跳转,则加上上⾯的代码,否则屏蔽掉。
  2.此处现在已知的⽅法是重新建⽴xib⽂件。
  3.iOS10 中某些权限是必须要加的
石家庄 旅游