有没有办法为整个应用程序禁用UINavigationBar Translucency?
我知道使用[self.navigationController.navigationBar setTranslucent:NO]可以解决单个控制器的这个问题,但我的应用程序中有很多UINavigationBars,这是一个非常繁琐的解决方案.
我试过了[[UINavigationBar appearance] setTranslucent:NO],但令人惊讶的是,不支持该功能.这样做会导致Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** Illegal property type, c for appearance setter, _installAppearanceSwizzlesForSetter:'
如果我必须,我可以通过我的整个应用程序设置UINavigationBars来逐个禁用半透明,但必须有一些更优雅的解决方案来解决这个问题...
我从故事板创建了一个navigationController,现在我正在尝试删除它的半透明选项
我把它放在我的appdelegate.m上
[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:52.0/255 green:152.0/255 blue:219.0/255 alpha:1]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setTranslucent:NO];
Run Code Online (Sandbox Code Playgroud)
但这会导致我的应用程序崩溃,但是我不确定这是否是正确的方法.
我发现了这个类似的问题,但没有解决我的问题: 导航控制器透明栏样式无法正常工作
但我不知道该怎么做,因为我没有变量navController,因为我从故事板创建了我的navigationController.如何以编程方式调用故事板导航控制器并执行类似的操作?
谢谢