###前提・実現したいこと
swift3 にてUIAlertController
でメッセージの表示をしているのですが、
メッセージが重複した際の処理で困っています。
すでにメッセージが表示されている状態で別のメッセージを表示してしまうと以下のエラーが出てしまうので
"すでになんらかのメッセージが表示されている場合は、次のメッセージを表示しない。"
という処理をしたいと思います。
しかし、コードが古いのか、根本的に間違っているのかうまく行きません。
何か良い方法はあるでしょうか。
よろしくお願いします。
###発生している問題・エラーメッセージ
Warning: Attempt to present ... while a presentation is in progress!
###該当のソースコード
swift
1 2// 外部からこのメッセージ表示クラスを呼ぶ。 3class Pop { 4 5 /// - Parameters: 6 /// - uIViewController: 呼び出し元で'self'を引数に指定します。 7 func message(_ uIViewController: UIViewController) { 8 9 // メッセージが表示されているかを判断したい。 10 // しかし、全て elseになってしまう。 11 if uIViewController.parent is AlertController { 12 return 13 } 14 // メッセージが表示されていなかったら表示 15 else { 16 17 let alert: UIAlertController = UIAlertController(title: "エラーです。", message: text , preferredStyle: UIAlertControllerStyle.alert) 18 let cancelAction: UIAlertAction = UIAlertAction(title: "確認", style: UIAlertActionStyle.cancel) { action in } 19 alert.addAction(cancelAction) 20 uIViewController.present(alert, animated: true, completion: nil) 21 } 22 } 23} 24
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/28 01:27