我有一个 mainviewcontroller 和一个弹出 View Controller ,打开时无需转场。
弹出 View Controller 从 Firebase 接收数据,然后我需要将此数据附加到主视图 Controller 中的数组中。
我怎样才能做到这一点?
(我尝试在 mainviewcontroller 中创建 popupviewcontroller 的属性,但导致应用程序崩溃)
这是打开弹出窗口的代码:
@IBAction func showPopUp(_ sender: Any) {
let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "sbPopUp") as! PopUpViewController
self.addChild(popOverVC)
popOverVC.view.frame = self.view.frame
self.view.addSubview(popOverVC.view)
popOverVC.didMove(toParent: self)
最佳答案
您需要连接这些类,以便弹出类知道在收到数据后如何处理数据。这是一个在 Playground 中运行的示例结构,您应该能够将其应用到实际的类中。
class MainClass {
func showPopUp() {
let popOverVC = PopUpClass()
popOverVC.update = addToArray
popOverVC.receivedData()
}
func addToArray() {
print("Adding")
}
}
class PopUpClass {
var update: (()->())?
func receivedData() {
if let updateFunction = update {
updateFunction()
}
}
}
let main = MainClass()
main.showPopUp()
关于ios - 从 2 个 View Controller 传递数据而不使用 segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56795967/