2017-11-26 2 views
0

現在、内部にTextFieldを持つAlertControllerを開こうとしています。AlertControllerブレークにTextFieldを追加するAlertController

let configAlert = UIAlertController(title: "Configure Add-On", message: "Enter Your Add-On Name:", preferredStyle: UIAlertControllerStyle.alert) 

configAlert.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action: UIAlertAction!) in 
     // Handle Input   
})) 

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

を実行している場合はすべてが正常に動作しますが、できるだけ早く私は、TextField

configAlert.addTextField { (textField) in 
    textField.placeholder = "Name" 
} 

を追加するとアラートは、開くのに約10倍の時間がかかり、即座に退け、と私はスパムコンソールにこのエラーが出ます約30回:

2017-11-26 13:04:08.985783-0500 MinelyMod[380:14792] Warning: Attempt to dismiss from view controller <UISplitViewController: 0x147e0a6a0> while a presentation or dismiss is in progress! 

ここでは、完成AlertControllerが

012に失敗thatsのです
+0

コードを呼び出すトリガーイベントはどのような種類ですか?それは、他のコントローラのプレゼンテーションアニメーションの途中で起こっているようです。 – Bill

+0

メインスレッドから 'present(_:UIViewController)'メソッドを呼び出すことを確認してください。あなたはまた、ハンドル入力コードを掲示するべきです。 –

+0

私はそれを新しいプロジェクトにコピー&ペーストしてくれました。私はxcode 8.3を使用しています。それを試して、それがそこで動作するかどうかを確認してください。問題がある場合は、別の場所にあります。 – dscrown

答えて

0
let alertController = UIAlertController(title: "Title", message: "", preferredStyle: .alert) 

    alertController.addAction(UIAlertAction(title: "Save", style: .default, handler: { 
     alert -> Void in 
     let textField = alertController.textFields![0] as UITextField 
     // do something with textField 
    })) 
    alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil)) 

    alertController.addTextField(configurationHandler: {(textField : UITextField!) -> Void in 
     textField.placeholder = "Search" 
    }) 

    self.present(alertController, animated: true, completion: nil) 
+1

コードのみの回答はおすすめしません。 OPが間違っていたことを説明してください... – Honey

関連する問題