table.reloadData () не обновляет таблицу при переключении вкладок (Swift) - PullRequest
0 голосов
/ 11 июля 2019

Я создаю простой список дел для iOS в xcode и столкнулся с проблемой при попытке перезагрузить табличное представление при переключении вкладок. Я написал это в контроллер представления:

override func viewDidAppear(_ animated: Bool) {
    let itemsObject = UserDefaults.standard.object(forKey: "items")
    if let tempItems = itemsObject as? NSMutableArray {
        items = tempItems
    }
    table.reloadData()
}

И я добавил табличный выход следующим образом:

class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet var table: UITableView!

Все элементы постоянно хранятся с использованием UserDefaults правильно, и когда я перезагружаю приложение, появляются новые элементы, которые я добавляю. Но я не могу понять, почему этот метод перезагрузки не работает для меня.

ПОЛНЫЙ КОД ДОБАВЛЕНО:

Контроллер первого вида:

import UIKit

class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet var table: UITableView!

    var items:NSMutableArray = []



    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {


        return items.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {



        let cell = UITableViewCell(style: UITableViewCell.CellStyle.default, reuseIdentifier: "Cell")

        cell.textLabel?.text = items[indexPath.row] as? String

        return cell

    } 


    override func viewDidLoad() {



        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    override func viewDidAppear(_ animated: Bool) {



        let itemsObject = UserDefaults.standard.object(forKey: "items")

        if let tempItems = itemsObject as? NSMutableArray {

            items = tempItems

        }

        table.reloadData()

    }

}

Контроллер второго вида:

import UIKit

class SecondViewController: UIViewController {




    @IBOutlet weak var input: UITextField!



    @IBAction func addItem(_ sender: Any) {

        print(input.text!)

        var items:[String]

        let itemsObject = UserDefaults.standard.object(forKey: "items")

        if let tempItems = itemsObject as? [String] {

            items = tempItems

            items.append(input.text!)

        } else {

            items = [input.text!]

        }

        UserDefaults.standard.set(items, forKey: "items")

        input.text = ""


    }



    override func viewDidLoad() {




        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...