【Swift】前の画面に戻った時にテーブルを再描画する方法

次のケースのように遷移先のViewから戻ってきた時に、遷移元のViewにあるテーブルのデータを再表示する方法について紹介します。

  1. TableViewで構成されたViewA→ViewBへ移動
  2. ViewBでテーブルのデータを操作
  3. ViewAに戻った時に、ViewBで変更した値を反映させる。

実装方法

ViewA(遷移元)の画面は次のようになります。

// 対象のtableViewを接続
@IBOutlet weak var tableView: UITableView!

override func viewWillAppear(_ animated: Bool) {
  super.viewWillAppear(animated)
  //テーブルを再描画
  tableView.reloadData()
}

ポイントはviewWillAppearの中でテーブルをリロードすることです。

遷移先から戻った時に、viewDidLoadの処理は走らないので、この中にreloadDataを書いても値が更新されません。

一方、viewWillAppearは、画面遷移してから戻る際にも呼ばれるため、この中にテーブルを更新して表示する処理を書いておけば最新の状態のテーブルを表示することが可能です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA