まだプログラミングに慣れてないので分かりにくいかと思いますが、ご容赦いただければと思います。
表題の通り、navigation controllerで画面遷移した際の値渡しがうまく行きません。
想定している挙動
→2つ目のUIViewControllerから1つ目のUIViewControllerに画面遷移した時、
テーブルビューのセルがリセットされる
1つ目のUIViewControllerのコード
swift
1import UIKit 2 3class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate { 4 5 @IBOutlet weak var tableView: UITableView! 6 7 var time:[String]=[ 8 "09:00", 9 "10:00", 10 "11:00", 11 "12:00", 12 "13:00", 13 "14:00" 14 ] 15 16 override func viewDidLoad() { 17 super.viewDidLoad() 18 tableView.delegate = self 19 tableView.dataSource = self 20 21 22 23 24 } 25 26 override func viewDidAppear(_ animated: Bool) { 27 super.viewDidAppear(true) 28 } 29 30 31 @IBAction func editMode(_ sender: Any) { 32 if tableView.isEditing == false{ 33 return tableView.isEditing = true 34 }else{ 35 return tableView.isEditing = false 36 } 37 38 } 39 40 @IBAction func addMode(_ sender: Any) { 41 self.performSegue(withIdentifier: "settingTime", sender: nil) 42 43 44 45 time.append("aaa") 46 self.tableView.reloadData() 47 48 49 } 50 51 52 53 54 55 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 56 return time.count 57 } 58 59 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 60 let cell = tableView.dequeueReusableCell(withIdentifier: "basicStyleCell", for: indexPath) 61 62 cell.textLabel!.text = self.time[indexPath.row] 63 64 return cell 65 } 66 67 func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) { 68 time.remove(at: indexPath.row) 69 tableView.deleteRows(at: [indexPath], with: UITableView.RowAnimation.automatic) 70 } 71 72 73 74 75} 76 77
2つ目のUIViewControllerのコード
swift
1import UIKit 2 3class Second: UIViewController { 4 5 var time:[String]=[] 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 10 11 } 12 13 14 @IBAction func done(_ sender: Any) { 15 let nextVC = self.storyboard?.instantiateViewController(withIdentifier: "ViewController") as! ViewController 16 nextVC.time = self.time 17 self.navigationController?.popViewController(animated: true) 18 19 20 21 } 22 23 24} 25 26
なお最終的には2つ目の画像のピッカーで選択した時刻が1つ目の画像のテーブルビューに追加される挙動を目指しておりますので、そのやり方も教えていただけますと助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/04 22:11