在父viewControler上发生操作时,如何刷新子viewControler对象



我在我的mainViewControler中嵌入了一个子ViewControler,它显示了一个图形。主视图控制器包括输入字段和保存按钮。我希望在录制保存按钮时,让childViewControler中的图形重新加载其数据。childViewControler包含一个函数

func refresh() {
fetchTransactionsAndCalculateTotals()
generateChartData()
setChart()}

我想打电话给他。我已经设置了从主控制器到子控制器的分段,

enum Segues {
static let toInOutBar = "toInOutBars"
}
override func prepare(for segue: UIStoryboardSegue, sender: UIButton?) {
if segue.identifier == Segues.toInOutBar {
let destVC = segue.destination as! InOutBarViewController
destVC.refresh()
}
}

我很难做到这一点,我试图从myUIButton操作调用此函数,但没有成功。

感谢的支持

您应该在按钮的touchUpInside操作上链接一个IBAction,并使用children属性获取您的子VC。

@IBAction func refreshClicked(_ sender: UIButton) 
{
guard let vcChild = self.children.first as? InOutBarViewController else { return; }
vcChild.refresh()
}

最新更新