当我单击后退按钮 (UINaviagtionController) 时,我试图将数据从 SecondViewController 传递到我的 FirstViewController。
为了将我的数据从 FirstViewController 传递到 SecondViewController 我这样做:
if segue.identifier == "showSecondVC" {
let vc = segue.destination as! SecondViewController
vc.rows = rows[pathForAVC]
vc.lap = lapTime[pathForAVC]
vc.indexPath = pathForAVC
}
但我不知道如何将数据从 SecondViewController 传递到 FirstViewController,而且我真的不了解 Stack Overflow 上的相关主题。
当我点击这里时,我想转移它:
谢谢。
您可以为此使用委托模式。您可以像这样抓取后退按钮按下事件并更新数据
override func viewWillDisappear(_ animated: Bool) {
if self.isMovingFromParentViewController {
self.delegate.updateData( data)
}
}
有关代表的更多信息,您可以通过此。
实际上,事情取决于您的要求,如果您希望数据在第二个视图控制器中更新后立即在第一个视图控制器中更新,则需要在数据更新后立即调用委托。但是正如您提到的问题一样,您希望它仅在后退按钮上更新,上面是执行此操作的地方。
另一种方法是将数据源作为单例,以便所有视图控制器都可以使用它,并且更改会反映在所有视图控制器中。但是,如果绝对必要,请创建单例,因为这些讨厌的家伙会在您的应用程序运行的整个时间里徘徊。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句