Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将数据从Firebase数据库传递到另一个ViewController不工作,因此segue不工作_Ios_Iphone_Swift_Firebase_Segue - Fatal编程技术网

Ios 将数据从Firebase数据库传递到另一个ViewController不工作,因此segue不工作

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: { (

我试图使用Firebase数据库中的数据来设置目标视图控制器中的变量,但我无法确定这是否是线程问题(没有使用正确的队列),或者我没有以正确的方式调用带有标识符的执行序列。 这是我的备考功能

    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中的数据。无论如何,谢谢你。