StatusBar в searchController и searchResultsController проблемы: iOS 8

Привет, вот моя проблема:

В методе didFinishLaunchingWithOptions: моего AppDeleagate у меня есть метод [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 я установил: для отображения строки состояния на основе контроллера отображается значение «НЕТ»

Все отлично работало, и все контроллеры в моем приложении имеют свои строки состояния с синим фоном и белым цветом текста. Но не контроллером пользователя и контроллером результатов пользователя.

Мой корневой TableViewController выглядит так:

https: //www .dropbox.com /с /oqcozos89x9yqhg /экран% 20Shot% 202014-12-11% 20at% 2016.21.06.jpg? дл = 0

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

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

https: //www .dropbox.com /с /26skdz7gvehmwl4 /экран% 20Shot% 202014-12-11% 20at% 2016.21.16.png? дл = 0

Еще одна ошибка: Когда я использую

navigationController.navigationBar.translucent = NO;

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

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

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

7 голосов | спросил Adelmaer 11 ThuEurope/Moscow2014-12-11T17:01:03+03:00Europe/Moscow12bEurope/MoscowThu, 11 Dec 2014 17:01:03 +0300 2014, 17:01:03

2 ответа


0

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

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}
ответил Ric Santos 23 J0000006Europe/Moscow 2015, 04:14:50
0

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

Это должно работать с остальным кодом.

ответил d9rad 10 MarpmTue, 10 Mar 2015 17:49:08 +03002015-03-10T17:49:08+03:0005 2015, 17:49:08

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132