2016-02-01 2 views
4

Я переношу с UIAlertView в UIAlertController, представленный в iOS 8. Однако я вижу несколько странных проблем с представлением, которые не вижу при использовании UIAlertView. Во-первых, при отображении предупреждения, текст в строке состояния не тускнеет:Строка состояния UIAlertController, не изменяющая цвет и затемнение

Status bar not dimmed

Кроме того, после вывода на экран строку состояния, задняя стрелка в UINavigationController теперь установлено в tintColor приложения, а не белый tintColor Я установил для UINavigationBar. Это влияет на другие элементы UINavigationBar во всем приложении, такие как кнопки «Добавить» (+) и «Редактировать». Перед отображением UIAlertController все элементы кнопки панели отображались как белые.

wrong tint color for back button

wrong tint color for edit and back button

Я в недоумении здесь. Мой код для отображения предупреждения очень прост:

UIAlertController *view = [UIAlertController alertControllerWithTitle:VALIDATION_TITLE message:text preferredStyle:UIAlertControllerStyleAlert]; 
[view addAction:[UIAlertAction actionWithTitle:VALIDATION_BUTTON_OK style:UIAlertActionStyleDefault handler:nil]]; 
[self presentViewController:view animated:YES completion:nil]; 
+0

Когда вы нажимаете ok на предупреждение, предупреждение увольняется, а затем стрелка назад тускнеет? Вы можете показать код, связанный с кнопкой «Назад»? –

+0

Стрелка назад на самом деле не тускнеет; он установлен в глобальный «tintColor», который является зеленоватым/синим. Стрелка назад не показывает этот цвет сразу, но покажет новый 'tintColor', когда я переключаюсь и возвращаюсь к экрану через панель вкладок внизу. На самом деле нет никакого кода, связанного с кнопкой возврата ... это обычный 'UINavigationController'. – Dan

+0

Это произошло после того, как вы уволили предупреждение? –

ответ

1

Таким образом, при работе с diplaying UIAlertControllers, когда у меня нет дескриптора дисплейного UIViewController, я нашел следующий код на StackOverflow:

https://stackoverflow.com/a/30941356/3434545

Если я использую show: метод, который запускает новый UIWindow и представляет UIAlertController от этого нового окна, у меня нет какого-либо из интерфейса побочных эффектов, которые я вижу выше при отображении предупреждения.

Если кто-то знает, почему это происходит, пожалуйста, ответьте на этот вопрос, потому что это довольно хаккий обходной путь!

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