2014-12-18 4 views
1

Мое приложение использует белый текст строки состояния во всем. Я совершил это через многочисленные настройки ниже:Строка состояния iOS чернила от Photo Framework

1/В Info.plist я поставил: Вид на базе контроллеров в строку состояния внешнего вида на «NO»

2/В - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions я поставил [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

3/я реализовал следующие в ВК я спрашиваю о здесь:

- (UIStatusBarStyle) preferredStatusBarStyle { 
    return UIStatusBarStyleLightContent; 
} 

4/В раскадровке я установить панель навигации стиль для «Black»

Таким образом, тонны различных способы убедиться, что простая строка состояния остается с белым текстом. Это работает повсюду, за исключением случаев, когда пользователи идут в библиотеку изображений или пользователь делает снимок. Это, конечно, запускает структуру Apple, которая использует черную строку состояния. Это нормально для этих контроллеров, поскольку они продиктованы Apple. Однако, когда пользователь затем отменяет или выбирает изображение и возвращается на мои контроллеры, строка состояния остается черной. Я попробовал следующее, когда он возвращает: [self setNeedsStatusBarAppearanceUpdate], но это также не работает.

Как я могу заставить строку состояния вернуться к белому тексту после того, как он вернется из контролируемых Apple элементов фотосъемки? Я работаю с iOS 8, хотя проверка показывает, что эта же проблема возникает в 7.1. Это происходит как с симулятором, так и с реальными устройствами.

ответ

2

Я нашел ответ, который должен был повторить то, что я сделал на своем шаге 2 выше в VC, на который возвращается сборщик изображений. Поэтому в viewWillAppear я выполняю: [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; снова. Похоже на то, что у вас есть несколько разных способов, чтобы строка статуса оставалась белой, но теперь она выполняется при любых обстоятельствах.

0

Я предполагаю, что это решит вашу проблему, как она решает мое Написать код для UIImagePicker и его делегатом, добавить willShowViewController метод, который является делегатом UINavigationController. Для стиля LightContent был установлен стиль строки состояния.

- (void)navigationController:(UINavigationController *)navigationController 
     willShowViewController:(UIViewController *)viewController 
        animated:(BOOL)animated { 

    if (([navigationController isKindOfClass:[UIImagePickerController class]] && 
     (((UIImagePickerController *)navigationController).sourceType == UIImagePickerControllerSourceTypeCamera)) || (((UIImagePickerController *)navigationController).sourceType == UIImagePickerControllerSourceTypePhotoLibrary)) 
    { 
     [[UIApplication sharedApplication] setStatusBarHidden:NO]; 
     [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

    } 
} 
+0

Благодарим вас за предложения. Я действительно нашел решение, которое немного более прямолинейно. Я отправлю его. – C6Silver

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