swiftの勉強のt前にmemoアプリを作っています。
AddMemoViewControllerで新しくメモを保存したあとメインのViewControllerに戻るのですが、その際に保存した情報が反映されるようにViewWillAppearのコードから読み込みをするように書いたのですが反映されません。
書く場所が間違っているのでしょうか?
ViewController
swift
1import UIKit 2 3class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 4 5 var memoArray = [String]() 6 7 @IBOutlet var memoTableView: UITableView! 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 12 memoTableView.dataSource = self 13 memoTableView.delegate = self 14 } 15 16 override func viewWillAppear(_ animated: Bool) { 17 loadMemo() 18 } 19 20 21 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 22 return memoArray.count 23 } 24 25 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 26 let cell = tableView.dequeueReusableCell(withIdentifier: "Memocell")! 27 cell.textLabel?.text = memoArray[indexPath.row] //何セクションの何行目 28 return cell 29 } 30 31 func loadMemo () { 32 let ud = UserDefaults.standard 33 if ud.array(forKey: "memoArray") != nil { 34 memoArray = ud.array(forKey: "memoArray") as! [String] 35 memoTableView.reloadData() 36 } 37 } 38 39 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 40 self.performSegue(withIdentifier: "toDetail", sender: nil) 41 tableView.deselectRow(at: indexPath, animated: true) 42 } 43 44 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 45 46 if segue.identifier == "toDetail" { 47 let DetailViewController = segue.destination as! DetailViewController 48 let selectedIndexPath = memoTableView.indexPathForSelectedRow! 49 DetailViewController.selectedMemo = memoArray[selectedIndexPath.row] 50 DetailViewController.selectedRow = selectedIndexPath.row 51 } 52 } 53} 54
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。