У меня такая конструкция:
Контейнер № 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](https://i.stack.imgur.com/bxOPn.png)