我有一个“PopUp”样式的 View ,它显示为 subview ,因此它出现在父 View Controller 的前面,如下所示:
let popOverView = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("newProjectPopup") as! AddProjectViewController
self.addChildViewController(popOverView)
popOverView.view.frame = self.view.frame
self.view.addSubview(popOverView.view)
popOverView.didMoveToParentViewController(self)
关闭我正在使用的弹出 View
self.view.removeFromSuperview()
除了它不会在父 View 中调用 viewWillAppear
或 viewDidAppear
方法之外,这非常有用。当弹出窗口关闭时,我需要更新父 View Controller 中的信息。我该怎么做?
最佳答案
您可以使用委托(delegate)模式来更新您的父 View 。
委托(delegate)模式
protocol ParentViewControllerDelegate {
func didUpdate(data: NSData)
}
class parentViewController: UIViewController, ParentViewControllerDelegate {
func didUpdate(data: NSData) {
// Update logic here
}
}
然后在您的 subview Controller 中,您可以在关闭它之前调用委托(delegate) didUpdate 函数。
关于ios - 当 View 从 subview 返回时调用函数 | swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39823868/