我有一个' PopUp'样式视图,显示为子视图,以便它显示在父视图控制器的前面,如下所示:
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)
关闭我正在使用的弹出式视图
self.view.removeFromSuperview()
除了在父视图中不调用viewWillAppear
或viewDidAppear
方法这一事实之外,它的效果很好。当弹出窗口被取消时,我需要在父视图控制器中更新信息。我怎么能这样做?
答案 0 :(得分:0)
您可以使用委托模式更新父视图。
委托模式
protocol ParentViewControllerDelegate {
func didUpdate(data: NSData)
}
class parentViewController: UIViewController, ParentViewControllerDelegate {
func didUpdate(data: NSData) {
// Update logic here
}
}
然后在您的子视图控制器中,您可以在解除它之前调用委托didUpdate函数。