【发布时间】:2019-01-08 22:19:51
【问题描述】:
我正在尝试从一个视图控制器到另一个视图控制器执行 segue,以便我可以传递数据。我正在将文本从文本字段传递到标签。另外,我正在尝试将该文本字段中的数据写入我的 Firebase 数据库。它不允许我在执行 segue 的同时写入数据。为什么会这样?如何同时进行?
我在两个视图控制器之间创建了一个显示转场,标识符为“nextTransition”。当我在添加数据库代码之前按下按钮时,segue 工作。一旦我添加了写入数据库的代码,我就会遇到无法写入的问题。它尝试使用 func 执行 segue,但没有改变任何内容。
@IBAction func nextButton(_ sender: Any) {
ref?.child("Title").childByAutoId().setValue("titleTextField.text")
performNextTransitionSegue()
下面是我为节目“nextTransition”创建的函数。
func performNextTransitionSegue() {
if titleTextField.text != "" {
performSegue(withIdentifier: "nextTransition", sender: self)
}
}
我希望它会在 Firebase 数据库中创建显示 titleTextField.text,但实际上它什么也没做。
【问题讨论】:
-
我相信写入 firebase 是一个异步函数。也许当您选择新的 VC 时,它会在完成写入之前关闭与 firebase 的连接。尝试在 setValue 的完成处理程序中进行 segueing? ref.setValue(object) { (error, ref) -> Void in }
-
我发布了一个答案来完成您在评论中提到的代码,如果您想添加它作为答案,我可以删除我的@Mocha
标签: swift firebase firebase-realtime-database segue