2016-08-18 4 views
2

Lors de la tentative d'implémentation d'une alerte d'interface utilisateur, j'ai rencontré quelques problèmes. J'utilise swift 3.0 dans Xcode 8 beta 4, j'essaye d'avoir un bouton qui active une alerte, un bouton (annuler) rejette l'alerte l'autre (ok) effectue une action comme un bouton UIAction, mais je n'ai pas pu même avoir une alerte à montrer.Pourquoi ce UIAlertController ne s'affiche-t-il pas?

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) 

Répondre

3

Ce code n'est pas compatible avec Swift 3. Des choses comme .Alert sont maintenant .alert. Et la méthode presentViewController est assez différente.

Cela devrait fonctionner.

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) 

Pourquoi avez-vous la fermeture après addAction(okAction) au lieu de lorsque vous avez créé l'alerte?

Espérons que cela aide!

+0

Merci beaucoup de ne pas essayer quand je rentre à la maison, c'est dommage qu'il n'y ait pas beaucoup d'aide là-bas pour swift3.0 encore. Fortement apprivoisé. – Yellow