7

Привета, вот моя проблема:StatusBar в задачах searchController и searchResultsController: IOS 8

В моем didFinishLaunchingWithOptions AppDeleagate в: метода У меня есть метод [само 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 я установить: Посмотреть контроллер на основе строки состояния внешнего вида на «NO»

Все прекрасно работало и все контроллеры внутри моего приложения имеют свои строки состояния с синим фоном и белый цвет текста. Но не uisearchcontroller и uisearchresultscontroller.

Моего корень TableViewController выглядит следующим образом:

https://www.dropbox.com/s/oqcozos89x9yqhg/Screen%20Shot%202014-12-11%20at%2016.21.06.jpg?dl=0

I интегрированного searchController и searchResultsController в моем приложении. Логика работает хорошо, но я не понимаю, как справляться со статусом строки внутри searchController и searchResultController. Они не используют стили для строки состояния, которые я создал в моем файле AppDelegate.m.

Мой поискController и searchResultsController выглядят как это (Statusbar стал белым, а цвет текста в строке состояния также стал белым, но мне нужна моя строка состояния того же цвета, что и в моем Home View Controller (синий фон и белый цвет текста .)

https://www.dropbox.com/s/26skdz7gvehmwl4/Screen%20Shot%202014-12-11%20at%2016.21.16.png?dl=0

Другая ошибка: Когда я использую

navigationController.navigationBar.translucent = NO; 

в моем AppDelegate - это вызывает "прыжки или растяжения вниз" моего дома tablevi ew в момент возврата с контроллера подробного представления после использования контроллера поиска. Когда я не устанавливаю полупрозрачное свойство - нет «прыжка».

Может быть кто-нибудь знает, как исправить, что в строке состояния цвета проблемы при использовании searchController в прошивке 8.

Если я использую цвета по умолчанию (не добавляйте никаких изменений в мою AppDelegate), все работает отлично, но Мне нужно настраивать цвета строки состояния в моем приложении.

+0

это ошибка. см. мой обходной путь: http: // stackoverflow.com/a/30225864/235297 –

ответ

0

Если вы хотите белый текст в строке состояния, внутри info.plist убедитесь, что вы Status bar style набор для Opaque black style или Transparent black style.

Это должно работать с остальной частью вашего кода.

6

Вам нужно будет подкласс UISearchController и переопределить preferredStatusBarStyle следующим образом:

- (UIStatusBarStyle)preferredStatusBarStyle 
{ 
    return UIStatusBarStyleLightContent; 
} 
+1

Если вы добавили в подкласс UISearchController, вы также можете рассмотреть вопрос о добавлении 'preferredStatusBarStyle' в качестве расширения. – MathewS

+4

Да, расширение работ '' 'расширение UISearchController! { \t общественного переопределение функ preferredStatusBarStyle() -> UIStatusBarStyle { \t \t возвращение .LightContent \t} }' '' –

 Смежные вопросы

  • Нет связанных вопросов^_^