我有这样的构造:
具有段控制的容器编号1(FirstViewContainer) 包含:
第2个容器(FoodViewContainer)和另一个细分控件 包含:
带有UITableView的3号容器(MyFoodContainer)
我需要从1号集装箱中点击更新UITableView
我的代码:
容器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号容器上。
答案 0 :(得分:0)
您可以为其使用协议或通知中心。如果我是你,我会选择协议。您可以添加从协议生成的委托,并将其用于在第一个容器中重新加载tableview。