モーダルビューを閉じて元の画面に戻ったときに、UIButtonの背景色、文字色、画像を変えたいです。
swift4でレビューアプリを作っています。
モーダルビューでレビューした後に、元の画面に戻ります。
モーダルビューに画面遷移して、遷移前の元の画面のviewControllerのインスタンスを取得してメソッドを実行して、そのメソッドの中で元の画面のUIButtonの背景色、文字の色、画像を変えた後に遷移前の元の画面に戻りたいです。
発生している問題・エラーメッセージ
メソッドの中のprint()は実行されているので、メソッド自体は実行できているのですが、UIButtonの背景色、文字の色、画像が変更することができず、 UIButtonがモーダルビューに遷移前の状態から変化していません。
該当のソースコード
モーダルビューに遷移後、モーダルビューを閉じて、元の画面に戻る関数の一部
ModalViewController
1 let url = URL(string: pre_url) 2 var request = URLRequest(url: url!) 3 // メソッドを指定 4 request.httpMethod = "POST" 5 //パラメータを指定 6 request.httpBody = params.data(using: .utf8) 7 let session = URLSession.shared 8 session.dataTask(with: request) { 9 (data, response, error) in 10 if let urlContent = data { 11 // 非同期処理が終了したら 12 DispatchQueue.main.async { 13 //親のViewControllerを取得して、メソッドを呼び出す 14 let storyboard = UIStoryboard(name: "Parent", bundle: nil) 15 let parentVC = storyboard.instantiateViewController(withIdentifier: "pa") as? ParentViewController 16 parentVC?.id = self.id 17 parentVC?.buttonUpdate() 18 self.dismiss(animated: true, completion: nil) 19 } 20 } 21 }.resume()
モーダルビューへ遷移前の元の画面のメソッド
ParentViewController
1@IBOutlet weak var button: UIButton! 2 3//遷移前にボタンの色を変える 4func buttonUpdate() { 5 print("update") 6 self.button?.backgroundColor = UIColor.rgba(red: 255, green: 152, blue: 152, alpha: 1) 7 self.button?.setTitleColor(.white, for: .normal) 8 let image = changed_img 9 self.button?.setImage(image, for: .normal) 10 }
試したこと
viewDidLoad()の中でbuttonUpdate()を実行したところ、ボタンの文字色、背景色、画像が望んだ状態になっていました。
UIButtonのプロパティを更新するには、IBActionを使わなければならない等の条件があるのでしょうか。
ご教授いただけると幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー