質問失礼します。
アプリ内で何度も使用するメソッドに関してclass funcとしてUtilクラスに共通化したのですが、
class funcメソッド内でエラー時にアラートを表示する際、
viewControllerがUtilクラスには存在しない為、
「Use of unresolved identifier 'present'」のエラーが発生してしまいます。
Utilクラスのままでエラー時に現在表示中のViewControllerにアラートを表示させる為にはどうすれば良いのでしょうか。
どなたかご教授いただけますと嬉しいです。
よろしくお願い致します。
・ビューコントローラー
Swift
1import UIKit 2//その他のビューコントローラーでもUtilクラスの呼び出しは行う為、アラートを表示するビューコントローラーは可変にしたい 3class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 8 Util.useUtil() 9 } 10}
Swift
1 2import UIKit 3 4 //処理を共通化したメソッド 5 class func useUtil() { 6 7 var error = "エラーがあります" 8 //エラーがあった場合、現在表示中のビューコントローラーにアラートを表示したい 9 if error != "" { 10 Util.useAlert(message: error, completion: { (alertController) in 11 present(alertController, animated: true, completion: nil)←エラーになってしまう 12 }) 13 } 14 } 15 16 //アラートを生成するメソッド 17 class func useAlert(message: String, completion: @escaping (UIAlertController) -> Void) { 18 //アラートを生成する 19 let alertController = UIAlertController(title: nil, message: message, preferredStyle: .alert) 20 let okAction = UIAlertAction(title: "OK", style: .default) 21 alertController.addAction(okAction) 22 completion(alertController) 23 } 24}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/22 12:01
退会済みユーザー
2020/05/22 12:07 編集
2020/05/22 14:33