2017-03-02 16 views
0

私はリストアプリをやるだけの簡単なアプリを持っています。私はこれまで何をしていません、すべてが正しい場所にあるかどうかは分かりません。私の第二のViewControllerで永続的なストレージTo-Do App Swift

var list = [String]() 

class FirstViewController: UIViewController,UITableViewDelegate, UITableViewDataSource { 

    @IBOutlet weak var myTableView: UITableView! 

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return list.count 
    } 

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "cell") 
     cell.textLabel?.text = list[indexPath.row] 

     return cell 
    } 

    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { 
     if (editingStyle == UITableViewCellEditingStyle.delete) { 
      list.remove(at: indexPath.row) 
      myTableView.reloadData() 
     } 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override func viewDidAppear(_ animated: Bool) { 
     myTableView.reloadData() 

     if let x = UserDefaults.standard.object(forKey: "cell") as? [String]! { 
      list = x 
     } 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 
} 

コード::私の最初のViewControllerで

コード

class SecondViewController: UIViewController { 

     @IBOutlet weak var input: UITextField! 

     @IBAction func addItemButton(_ sender: AnyObject) { 
      list.append(input.text!) 
      input.text = "" 

      UserDefaults.standard.set(input.text, forKey: "cell") 
     } 

     override func viewDidLoad() { 
      super.viewDidLoad() 
     } 

     override func didReceiveMemoryWarning() { 
      super.didReceiveMemoryWarning() 
     } 
    } 

答えて

0

あなたは、データを取得する前にviewDidAppearreloadingテーブルビューです。最初にユーザーデフォルトからデータを取得し(listに設定)、テーブルビューを再読み込みします。

ヒント: -

override func viewDidAppear(_ animated: Bool) { 

     if let x = UserDefaults.standard.object(forKey: "cell") as? [String]! { 
      list = x 
     myTableView.reloadData() 

     } 

    } 
関連する問題