【发布时间】:2014-12-11 14:01:03
【问题描述】:
您好,这是我的问题:
在我的 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 添加任何更改),一切正常,但我需要在我的应用程序中自定义状态栏颜色。
【问题讨论】:
-
这是一个错误。查看我的解决方法:stackoverflow.com/a/30225864/235297
标签: ios8 appdelegate uistatusbar uisearchcontroller uisearchresultscontroller