ios - 当 View 从 subview 返回时调用函数 | swift

标签 ios swift viewdidappear

我有一个“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 中调用 viewWillAppearviewDidAppear 方法之外,这非常有用。当弹出窗口关闭时,我需要更新父 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/

相关文章:

ios - 如何在 viewDidAppear 中只执行一次?

ios - 为什么在 Xcode 7.2.1 中创建项目存档时出现此链接器错误

swift - viewDidAppear() 在每次点击时运行

ios - 使 Eureka DateTimeInlineRow 值显示在 textLabel 而不是 detailTextLabel 中

ios - 关闭 iOS 向后滑动

ios - XCode 6 和 Swift 中的 MKOverlay 颜色不匹配

swift - 使用 Firestore 的自定义模型

react-native - react-navigation:检测屏幕、标签栏何时被激活/出现/聚焦/模糊

ios - 显示来自 facebook 的照片

iphone - 访问 UITableView 中单元格的文本