Обновить UITableView из 3-го контейнера - PullRequest
0 голосов
/ 19 июня 2019

У меня такая конструкция:

Контейнер № 1 (FirstViewContainer) с элементом управления сегментом содержит:

Контейнер № 2 (FoodViewContainer) с другим элементом управления содержит:

Контейнер № 3 (MyFoodContainer) с UITableView

Мне нужно обновить UITableView по клику из Контейнера № 1

Мой код:

КОД ДЕЙСТВИЯ КОНТЕЙНЕРА 1:

  @IBAction func nextButton(_ sender: UIBarButtonItem) {
    print("clicked")
    var myClass : FoodViewController = self.children[1] as! FoodViewController

    myClass.relodDatabase()

ФУНКЦИОНАЛЬНЫЙ КОД КОНТЕЙНЕРА 2:

func relodDatabase()
{
    print("data reloaded")
    var myClass : MyFoodContainer = self.children[1] as! MyFoodContainer

    myClass.myFoodTable.reloadData()
    if myClass.foodList.count == 0 {
        myClass.myFoodTable.setEmptyView(title: "You don't have any food.", message: "Your food will be in here after adding.")
    }

    else {
        myClass.myFoodTable.restore()
    }

    myClass.viewWillAppear(true)

    var secondClass: CustomFoodContainer = self.children[2] as! CustomFoodContainer

    secondClass.foodList = TrackerDatabase.instance.getFoood(dname: dayTable)
    secondClass.viewWillAppear(true)
}

Проблема в том, что никто не происходит, когда я пытаюсь перезагрузить вещи.Тем не менее, print («data reloaded» выполняется правильно.

Интересно, что я могу перезагрузить табличное представление из 2 контейнеров, одного родителя, одного потомка. Я не могу сделать это через parent> child> child's child

Любая идея, как я могу сделать это правильно? Может быть, какой-то обход?

Я включил изображение:

На каждой стрелке рядом или стрелка назад,таблица должна перезагрузиться, таблица находится на контейнере № 3.

enter image description here

1 Ответ

0 голосов
/ 19 июня 2019

Вы можете использовать для этого протокол или центр уведомлений.Я бы предпочел протокол на твоем месте.Вы можете добавить делегат, который генерируется из протокола, и использовать его для перезагрузки просмотра таблицы в первом контейнере.

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