你好,这是我的问题:
在我的 AppDeleagate 的 didFinishLaunchingWithOptions:方法中,我有一个方法[self configureUINavigationControllerStlyle]; 它配置了我的应用程序的状态栏和所有导航栏外观(我的应用程序中有 UINavigationController 和 UITabbarController 一起工作)。
-(void) configureUINavigationControllerStlyle {
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UINavigationController *navigationController = (UINavigationController *)[tabBarController.viewControllers objectAtIndex:0];
navigationController.navigationBar.translucent = NO;
[[UINavigationBar appearance] setBarTintColor: [CustomColor getAwesomeColor:@"colorBlue3_1"]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setTitleTextAttributes:@{
NSForegroundColorAttributeName : [UIColor whiteColor],
NSFontAttributeName: [UIFont fontWithName:@"AvenirNext-DemiBold" size:17.0]
}];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}
另外在我的 info.plist 我设置:查看基于控制器的状态栏外观为“否”
一切都很好,我应用程序中的所有控制器都有蓝色背景和白色文本颜色的状态栏。但不是 uisearchcontroller 和 uisearchresultscontroller。
我的根 TableViewController 如下所示:
https://www.dropbox.com/s/oqcozos89x9yqhg/Screen%20Shot%202014-12-11%20at%2016.21.06.jpg?dl=0
我在我的应用程序中集成了 searchController 和 searchResultsController。逻辑运行良好,但我不明白如何处理 searchController 和 searchResultController 中的状态栏外观。他们不使用我在 AppDelegate.m 文件中创建的状态栏样式。
我的 searchController 和 searchResultsController 看起来像这样(状态栏变为白色,状态栏的文本颜色也变为白色,但我需要状态栏与主视图控制器中的颜色相同(蓝色背景和白色文本颜色)。
https://www.dropbox.com/s/26skdz7gvehmwl4/Screen%20Shot%202014-12-11%20at%2016.21.16.png?dl=0
另一个错误:当我使用
navigationController.navigationBar.translucent = NO;
在我的 AppDelegate 中 - 在使用搜索控制器后从详细视图控制器返回时,它会导致我的主表视图“跳跃或向下伸展”。当我不设置半透明属性时 - 没有“跳跃”。
也许有人知道在 iOS 8 中使用 searchController 时如何解决状态栏颜色问题。
如果我使用默认颜色(不要对我的 AppDelegate 添加任何更改),一切正常,但我需要在我的应用程序中自定义状态栏颜色。