2017-04-27 23 views
1

私は新しいXcodeのアップデート警告ダイアログを提示しながら、私は問題に直面しています8.3.2で簡単な警告をやろうとしています:'UIAlertAction'型の値を期待される引数型 'UIViewController'に変換できませんか?

@IBAction func testButonAlert() 
{ 

    let alertAction = UIAlertAction(title : "Hi TEst" , 
            style : UIAlertActionStyle.destructive, 
            handler : { (UIAlertActionStyle) -> Void in print("") }) 

    self.present(alertAction , animated: false, completion: nil) 
} 

エラー:

に型「UIAlertAction」の値を変換できません。期待される引数の型 'のUIViewController'

enter image description here

答えて

2

actionは、不可能で(エラーが発生する)表示されます。

@IBAction func testButonAlert() 
{ 
    let alertController = UIAlertController(title: "Hi TEst", message: "Choose the action", preferredStyle: .alert) 
    let alertAction = UIAlertAction(title : "Delete Me" , 
            style : .destructive) { action in 
             print("action triggered") 
            } 

    alertController.addAction(alertAction) 
    self.present(alertController, animated: false, completion: nil) 
} 
2

あなたは、単にUIAlertControllerでアラートを作成することができます

let yourAlert = UIAlertController(title: "Alert header", message: "Alert message text.", preferredStyle: UIAlertControllerStyle.alert) 
yourAlert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: { (handler) in 
         //You can also add codes while pressed this button 
        })) 
self.present(yourAlert, animated: true, completion: nil) 
3

あなたはUIAlertControllerを使用する必要があります。

let alertVC = UIAlertController(title: "title", message: "message", preferredStyle: .alert) 
alertVC.addAction(UIAlertAction(title: "Close", style: .default, handler: nil)) 
self.present(alertVC, animated: true, completion: nil) 
0

class func showAlert(_ title: String, message: String, viewController: UIViewController, 
         okHandler: @escaping ((_: UIAlertAction) -> Void), 
         cancelHandler: @escaping ((_: UIAlertAction) -> Void)) { 
     let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert) 
     let OKAction = UIAlertAction(title: "OK", style: .default, handler: okHandler) 
     alertController.addAction(OKAction) 
     let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: cancelHandler) 
     alertController.addAction(cancelAction) 
     viewController.present(alertController, animated: true, completion: nil) 
    } 
スウィフト4.0の場合:

は、次の例のようにアクションを添付する親UIAlertControllerを必要とします

関連する問題