Swift 不能通过拾取新图像来替换在ViewDidIspect中快速显示图像

Swift 不能通过拾取新图像来替换在ViewDidIspect中快速显示图像,swift,Swift,我使用firebase作为我的后端,并且我在ViewDidDisplay中有一个显示facebook照片图像的功能,这样当用户在viewcontroller时,配置文件图像就会显示出来。我的问题是,每当用户想要通过图像选择器更改配置文件图像时,它只会显示“拾取的图像”1秒钟,然后返回到facebook图像 我认为问题在于显示facebook照片图像功能是否在ViewDidDisplay中?我怎样才能解决它 override func viewdidappear(){ super.viewdi

我使用firebase作为我的后端,并且我在ViewDidDisplay中有一个显示facebook照片图像的功能,这样当用户在viewcontroller时,配置文件图像就会显示出来。我的问题是,每当用户想要通过图像选择器更改配置文件图像时,它只会显示“拾取的图像”1秒钟,然后返回到facebook图像

我认为问题在于显示facebook照片图像功能是否在ViewDidDisplay中?我怎样才能解决它

override func viewdidappear(){
  super.viewdidappear(animated)
  self.displayProfilePic(user)
}

func displayProfilePic(user: FIRUser?){

let photoURL = user?.photoURL
struct last {
  static var photoURL: NSURL? = nil
} 
last.photoURL = photoURL;  later one.
if let photoURL = photoURL {
  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), {
    let data = NSData.init(contentsOfURL: photoURL)
    if let data = data {
      let image = UIImage.init(data: data)
      dispatch_async(dispatch_get_main_queue(), {
        if (photoURL == last.photoURL) {
          self.profilePic.image = image

        }
      })
    }

  })
} else {
  profilePic.image = UIImage.init(named: "DefaultPic")
}
图像选择器方法

  func openGallary(){

if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.SavedPhotosAlbum){
  print("Pick Photo")

  self.imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
  self.imagePicker.allowsEditing = true
  self.presentViewController(self.imagePicker, animated: true, completion: nil)
}
}

func openCamera(){
if(UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)){
  self.imagePicker.sourceType = UIImagePickerControllerSourceType.Camera
  self.imagePicker.allowsEditing = true
  self.presentViewController(self.imagePicker, animated: true, completion: nil)
}else{
  print("you got no camara")
}
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMeddiaWithInfo info: [String :AnyObject]){
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {

  profilePic.contentMode = .ScaleAspectFit
  profilePic.image = pickedImage
}
dismissViewControllerAnimated(true, completion: nil)
}
我不知道为什么图像选择器拾取的图像不能被替换

我认为问题在于显示facebook照片图像功能在ViewDidEmbeen中

这是正确的<每次在覆盖视图的VC(例如图像选取器)退出后再次显示视图时,都会调用代码>视图显示

您可以在
viewDidLoad
中执行此操作,在加载VC时只调用一次,在完成imagePicker时不再调用

如果不能,则需要跟踪imagePicker是否替换了该图像,并且在调用
ViewDidDisplay
时不应再次将其替换为FB图像

我认为问题在于显示facebook照片图像功能在ViewDidEmbeen中

这是正确的<每次在覆盖视图的VC(例如图像选取器)退出后再次显示视图时,都会调用代码>视图显示

您可以在
viewDidLoad
中执行此操作,在加载VC时只调用一次,在完成imagePicker时不再调用


如果不能,则需要跟踪imagePicker是否替换了图像,并且在调用
ViewDidDisplay
时不应再次将其替换为FB图像。

我已将该方法放在viewDidLoad中,但它不起作用,而且我以前也尝试过。请按照“如果不能,则…”之后的说明操作在我的回答中,我将该方法放在viewDidLoad中,但它不起作用,而且我以前也尝试过。请按照我回答中“如果不能,那么…”之后的说明进行操作