Настройка tintColor на UIAlertController работает для всего, кроме iPad

#ios #iphone #swift #ipad #uialertcontroller

#iOS #iPhone #swift #iPad #uialertcontroller

Вопрос:

В моем AppDelegate я устанавливаю:

 UIView.appearance().tintColor = UIColor.redColor()
  

Позже я устанавливаю tintColor UIAlertController так, чтобы кнопки, которые он показывает, были синими, вот так:

 uiAlertController.view.tintColor = UIColor.blueColor()
  

На устройствах iPhone кнопки синие, как и ожидалось. Однако на iPad кнопки красные. Почему tintColor не переопределяется только на устройствах iPad?

Комментарии:

1. Одна из проблем, с которой я столкнулся, и я считаю, что это ошибка iOS, заключается в том, что единственный способ, которым я могу успешно изменить цвет оттенка UIAlertController , — это установить его после его представления. Поэтому я present сначала выполняю вызов, а затем устанавливаю его tintColor в следующей строке. Возможно, это и ваша проблема?

2. Да, я действительно пытался установить его после представления, а также в обратном вызове, но безрезультатно: (

3. UIAlertController предназначен для использования как есть в соответствии с документами Apple, поэтому я не удивлюсь, если установка какого-либо свойства в представлении имела неопределенное поведение. Лучше всего было бы установить tintColor главное окно приложения, откуда UIAlertController оно tintColor берется.

4. Если это не работает, и вы представляете предупреждение во всплывающем окне на iPad, попробуйте поиграть с UIAlertController «s popoverPresentationController «.