Как обновить данные TableView в Swift - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь перезагрузить данные моего TableView, который успешно перезагружается при запуске приложения, но не во время выполнения приложения. У меня есть контроллер вида, в котором я храню объекты, используя core data, а затем второй контроллер вида, в который я загружаю те же объекты.

Метод viewDidLoad():

let fetchRequest: NSFetchRequest<Workout> = Workout.fetchRequest() 
do {
    let workouts = try PersistenceService.context.fetch(fetchRequest)
    self.routines = workouts
    } catch {}
exerciseTableView.reloadData() // Works

Функция reloadData() в этом методе работает, так как данные обновляются при каждом запуске приложения. Я попытался перезагрузить данные таблицы, используя одну из кнопок моего второго контроллера представления, которая открывает раскрывающееся меню.

Метод действия кнопок:

@IBAction func selectRoutineButtonPressed(_ sender: Any) {
        DispatchQueue.main.async {
            self.exerciseTableView.reloadData() // Not Working
        }
        if exerciseTableView.isHidden == true {
            animate(toggle: true, togglingTableView: exerciseTableView)
        }
        else {
            animate(toggle: false, togglingTableView: exerciseTableView)
        }
    }

У меня изначально не было строки DispatchQueue, но после попытки найти решение я добавил ее. Однако данные таблицы по-прежнему не меняются, когда я нажимаю кнопку.

Любой совет будет принят с благодарностью, спасибо.

1 Ответ

1 голос
/ 16 апреля 2019

Попробуйте вот так

@IBAction func selectRoutineButtonPressed(_ sender: Any) {

let fetchRequest: NSFetchRequest<Workout> = Workout.fetchRequest() 
do {
    let workouts = try PersistenceService.context.fetch(fetchRequest)
    self.routines = workouts
    } catch {}

    DispatchQueue.main.async {
        self.exerciseTableView.reloadData() // Not Working
    }
    if exerciseTableView.isHidden == true {
        animate(toggle: true, togglingTableView: exerciseTableView)
    }
    else {
        animate(toggle: false, togglingTableView: exerciseTableView)
    }
}

Надеюсь, это сработает для вас.

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