lms*_*lms 15 objective-c ios xcode4 ios5
我正在构建一个包含许多视图控制器的应用程序:我有一个UITabBarController
容纳4个UINavigationController
.我希望所有导航栏都是我的自定义颜色,比如蓝色,我通过在我的app委托中执行此操作来实现:
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
Run Code Online (Sandbox Code Playgroud)
但我也有一个特殊的视图控制器,它有一个地图,对于这个视图控制器,我想覆盖蓝色导航栏设置UIAppearance
使其成为黑色不透明样式.我试过在里面调用它viewDidLoad
:
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.translucent = YES;
Run Code Online (Sandbox Code Playgroud)
但没有任何反应.可以这样做还是我必须放弃UIAppearance并navigationBar
为每个视图控制器手动设置属性?
hyp*_*ypt 30
你这样做的方式应该有效,但事实并非如此.这确实有效:
UINavigationBar.appearance(whenContainedInInstancesOf: [YourOtherVC.self]).tintColor = .black
Run Code Online (Sandbox Code Playgroud)
[[UINavigationBar appearanceWhenContainedIn:[YourOtherVC class], nil] setTintColor:[UIColor blackColor]];
Run Code Online (Sandbox Code Playgroud)
为此你会这样做:
id specialNavBarAppearance = [UINavigationBar appearanceWhenContainedIn:[SpecialViewController class], nil];
[specialNavBarAppearance setBarStyle:UIBarStyleBlack];
[specialNavBarAppearance setTranslucent:YES];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8445 次 |
最近记录: |