项目里有用到相机横屏拍照的功能,拍照后需要横屏切换到竖屏..我的首页是隐藏Nav的..所以在push后控制器内我要展示Nav..
所以在viewWillAppear
self.navigationController.navigationBar.hidden = YES;
在viewWillDisappear
self.navigationController.navigationBar.hidden =NO;
今天测试突然提出bug 拍照后 Nav异常顶到状态来上边了.
正常push pop都是正常的 不会出现这个问题,只有在横屏后再竖屏push就会出现这个问题..
于是我找遍了横屏后的代码处理..
最诡异的是,断点查看图层后 发现nav确实顶上去了 y值也变成了0,然后放开断点突然发现Nav正常了~! 反复测试都是这个结果..这时候我并没有在意问题的原因..
今天吃饭后,,我又研究这个问题..在Nav异常的界面内,,我下拉的一下系统的下拉桌面..恐怖的事情发生了..Nav竟然恢复正常了...我突然意识到是不是刷新的问题..
然而..貌似并不是..
于是我想到了 隐藏状态栏还有一种写法..
[self.navigationController setNavigationBarHidden:YES animated:NO];
结果,,bug解决了..离谱好吧..
我记得官方文档上 只是区别了pop的手势返回..并没有提到Nav的刷新问题
setNavigationBarHidden 是controller的属性
navigationBar.hidden 则是作用在navigationBar上...
哎 致此问题解决..但是在文档上并没有相关的信息..
所以我在想应该就是横竖切换造成了controller的异常..
因为项目进度问题,并没有去看controller内部代码与文档...
如果有知道的小伙伴..评论区探讨下..有时间我去翻一下文档在补充
至此记录一下bug的问题..也希望可以帮到其他小伙伴.
网友评论