tableViewのセルをタップ時、performSegueで次画面へ遷移しようと思っています。
その際、次画面へデータを送りたいのでprepareメソッド内にて設定しているのですが、遷移した画面ではデータが送られていません。
解決方法をご教示いただけませんでしょうか。
遷移前のViewContrller
viewController
1 // セルがタップされた時の処理 2 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 3 print("tapped") 4 performSegue(withIdentifier: "EditNavigationController", sender: self) 5 } 6 7 8 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 9 if segue.identifier == "editNavigationController" { 10 11 let NC = segue.destination as! UINavigationController 12 let nextVC = NC.topViewController as! EditViewController 13 ↓選択したデータが持つインスタンスを次画面のプロパティに設定 14 nextVC.memo = self.memos[(self.tableView.indexPathForSelectedRow?.row)!] 15 16 } 17 }
遷移先のViewContrller
viewController
1 2class EditViewController: UIViewController { 3 var memo: Memo? 4 5 @IBOutlet weak var nameText: UITextField! 6 @IBOutlet weak var textText: UITextField! 7 @IBOutlet weak var saveButton: UIButton! 8 9 override func viewWillAppear(_ animated: Bool) { 10 super.viewWillAppear(animated) 11 12 if let memo = memo{ 13 self.nameText.text = memo.name 14 self.textText.text = memo.text 15 } 16 self.saveButton.isEnabled = false 17 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。