dji*_*i33 1 iphone objective-c ios uiappearance
我正在使用iOS的UIAppearanceProxy来自定义我的应用程序的外观.
在大多数应用程序中,我希望navBar有一个背景图像.在应用程序的一个特定部分,我希望navBar具有不同的背景图像.
这就是我正在做的事情 application:didFinishLaunchingWithOptions:
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbar_bg1"]
forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearanceWhenContainedIn:[DiscoverViewController class], nil] setBackgroundImage:[UIImage imageNamed:@"navbar_bg2"] forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)
我想将所有外观代码保存在一个地方,而不是覆盖特定视图控制器中的navBar.
同样有用的是我的应用程序是用TabBarController构建的,其中每个选项卡控制一个NavigationController,它拥有一个子类ViewController,如上面的DiscoverViewController.
我究竟做错了什么?
如您所说,导航栏不包含DiscoverViewController在您的层次结构中; 相反,两者都包含在导航控制器中.保持外观代码集中的一种方法是创建一个空子类UINavigationController并实例化它而不是UINavigationController在相关位置(无论是nib还是故事板还是仅以编程方式).然后,要设置子元素的样式,让它们的外观代理"包含在内" DiscoveryNavigationController或者你拥有什么.我过去使用过这种方法效果很好.
| 归档时间: |
|
| 查看次数: |
1865 次 |
| 最近记录: |