在iOS8之后,因为状态栏的状态基本都是半透明的状态,在很多我们设计的情况下,是不需要这种半透明的状态,而是需要全透明的状态栏,因此我们会设置translucent属性为NO。
但是因为好多VC都是受navigation的管理,我们不可能在每个VC都设置translucent属性,而大多数的开发者会选择在AppDelete
中设置下面一句代码:
[UINavigationBar appearance].translucent = NO;
这样设置是可以解决问题,但是存在一个潜在的问题,在iOS8以上的系统都没有问题,但是在iOS7的系统上,一启动程序就会直接出现闪退,根本进入不到主页面。
解决的办法:我们只能在创建UINavigationController的时候,在这个时候设置
navigationController.navigationBar.translucent = NO;
只有这样我们才能保证程序即能正常运行也能设置透明状态。