モーダルビューを閉じるタイミングで親のビューを更新する方法に関するメモ。
今作っている日記アプリで、投稿画面の投稿完了後、画面を閉じるタイミングでカレンダーの表示を更新したい時がありました。
モーダルを閉じるタイミングで親を更新する方法
モーダルで表示した画面を閉じるタイミングで親のViewControllerを更新するには、
UIViewControllerの「presentingViewController」を使えば良さそうです。
親側のViewControllerで更新用のメソッドを用意しておいて、
//ParentViewController func updateView(){ //表示の更新 loadListData() self.calendar.reloadData() }
子(モーダル表示側)のViewControllerで親を取得して親のメソッドを呼び出します。
//ChildViewController //親のViewControllerを取得して、メソッドを呼び出す let parentVC = self.presentingViewController as! ParentViewController parentVC.updateView() //自分を閉じる self.dismiss(animated: true, completion: nil)
「presentingViewController」を使えば親のViewControllerのメソッドや、パラメータも取得できるので、他にも色々使い道ありそうですね。