Основная проблема здесь является то, что UIAlertController
(в отличие от UIAlertView
) является подклассом UIViewControlller
, то есть он должен быть представлен как таковые (а не с помощью метода show()
). Кроме этого, если вы хотите изменить цвет кнопки отмены на красный, вам необходимо установить стиль предупреждения об отмене на .Destructive
.
Это работает только если вы хотите, чтобы кнопка была красной. Если вы хотите изменить цвета кнопок в контроллере предупреждений на произвольные цвета, это можно сделать только путем установки свойства tintColor
свойства view
контроллера предупреждения, что изменит цвет оттенка всех его кнопок (кроме тех, которые являются разрушительными). Следует отметить, что при разработке парадигм дизайна, которые Apple внедрила, нет необходимости менять цвет кнопки отмены из-за последствий его выделения жирным шрифтом.
Если вы все еще хотите, чтобы текст был красный, хотя, это может быть сделано, как это:
let alertController = UIAlertController(
title: "Title",
message: "Message",
preferredStyle: UIAlertControllerStyle.Alert
)
let cancelAction = UIAlertAction(
title: "Cancel",
style: UIAlertActionStyle.Destructive) { (action) in
// ...
}
let confirmAction = UIAlertAction(
title: "OK", style: UIAlertActionStyle.Default) { (action) in
// ...
}
alertController.addAction(confirmAction)
alertController.addAction(cancelAction)
presentViewController(alertController, animated: true, completion: nil)
Который дает результаты вы после:
Я до сих пор не могу обмотаться за быстрый синтаксис закрытий ... Что значит «в»? почему все _inside_ фигурные скобки? Потребуется время, чтобы привыкнуть к этому ... –
'in' просто отделяет аргументы от реализации закрытия – MrBr