#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
«spopoverPresentationController
«.