2016-08-18 2 views
2

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

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) 

ответ

3

Этот код не совместим с 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) вместо того, когда вы создали оповещение?

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

+0

Огромное спасибо, что попробуй, когда я вернусь домой, его позор там не очень помогает там для swift3.0. Очень хорошо. – Yellow

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