Ios 将数据从Firebase数据库传递到另一个ViewController不工作,因此segue不工作
我试图使用Firebase数据库中的数据来设置目标视图控制器中的变量,但我无法确定这是否是线程问题(没有使用正确的队列),或者我没有以正确的方式调用带有标识符的执行序列。 这是我的备考功能Ios 将数据从Firebase数据库传递到另一个ViewController不工作,因此segue不工作,ios,iphone,swift,firebase,segue,Ios,Iphone,Swift,Firebase,Segue,我试图使用Firebase数据库中的数据来设置目标视图控制器中的变量,但我无法确定这是否是线程问题(没有使用正确的队列),或者我没有以正确的方式调用带有标识符的执行序列。 这是我的备考功能 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { ProfileService.sharedInstance.getPreparedForProfilePage(completionHandler: { (
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
ProfileService.sharedInstance.getPreparedForProfilePage(completionHandler: { (un, sn, pi, pb) in
DispatchQueue.main.async {
if segue.identifier == SEGUE_TO_PROFILE {
if segue.destination.isKind(of: ProfileVC.self) {
let destination = segue.destination as! ProfileVC
destination.userName = un
destination.formattedScreenName = sn
do {
let pi_url = URL(string: pi)
let imgData = try Data(contentsOf: pi_url!)
let profImg = UIImage(data: imgData)
destination.profileImage = profImg
}
catch {}
do {
let pb_url = URL(string: pb)
let imgData = try Data(contentsOf: pb_url!)
let profBanner = UIImage(data: imgData)
destination.profileBannerImage = profBanner
}
catch {}
self.shouldSegue = true
}
}
}
})
}
来自完成处理程序的元组值都是字符串(最后两个图像url字符串),它们来自我的singleton类,我在该类中执行Firebase查询,它们在生成print语句后工作正常。但是这个过程似乎不起作用。您需要在调用此函数之前执行firebase请求,因为此函数很可能在firebase请求完成之前结束。您应该有一个从firebase下载的函数,然后调用
performsgue(with identifier:String,sender:Any?
,它将下载的数据传递到新的视图控制器。原来问题是我没有像应该的那样解析firebase中的数据。无论如何,谢谢。您需要在调用此函数之前执行firebase请求,因为此函数很可能在您的firebase请求完成之前结束。您应该有一个从firebase下载的函数,然后调用performsgue(with identifier:String,sender:Any?
,它将下载的数据传递到新的视图控制器。原来问题是我没有像应该的那样解析firebase中的数据。无论如何,谢谢你。