Почему этот UIAlertController не показывает?

При попытке реализовать предупреждение пользовательского интерфейса я столкнулся с некоторыми проблемами. Я использую swift 3.0 в Xcode 8 beta 4, я пытаюсь получить кнопку, которая активирует предупреждение, одна кнопка (отмена) отклоняет предупреждение, а другая (ок) выполняет действие как кнопка UIAction, однако я не смог даже получить предупреждение, чтобы показать.

var warning = UIAlertController(title: "warning", message: "This will erase all content", preferredStyle: .Alert)

var okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) {
    UIAlertAction in
    NSLog("OK Pressed")
}

var cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) {
    UIAlertAction in
    NSLog("Cancel Pressed")
}

warning.addAction(okAction) {
   // this is where the actions to erase the content in the strings 
}
warning.addAction(cancelAction)

self.presentViewController(warning, animated: true, completion: nil)

1 ответ

Решение

Этот код не совместим с Swift 3. Такие вещи, как .Alert есть сейчас .alert, И presentViewController Метод совсем другой.

Это должно работать.

let warning = UIAlertController(title: "warning", message: "This will erase all content", preferredStyle: .alert)

    let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) {
        UIAlertAction in
        NSLog("OK Pressed")
        //ok action should go here
    }


    let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel) {
        UIAlertAction in
        NSLog("Cancel Pressed")
    }

    warning.addAction(okAction)
    warning.addAction(cancelAction)

    present(warning, animated: true, completion: nil)

Почему у вас было закрытие после addAction(okAction) а не когда вы создали оповещение?

Надеюсь это поможет!

Другие вопросы по тегам