2017-10-14 48 views
0

一旦用戶完成選取圖像,我無法從圖像選取器彈出到視圖控制器。基本上我有一個用戶拍照,然後將視圖控制器彈出到一個新的視圖控制器,該視圖控制器位於一個色彩控制器中。這是我的代碼現在,這是行不通的。我也不想回到視圖控制器,我打開選擇器,因爲我想去編輯區域(單獨的視圖)。如何從UIImagePicker推送到UIViewController

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 
    if let selectedImage = info[UIImagePickerControllerOriginalImage] as? UIImage { 
     // ... 
    } 
    dismiss(animated: true, completion: { 
     let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "sendPost") 
     picker.popToViewController(vc, animated: true) 
    }) 
} 

請隨時給小費,謝謝。

回答

1

爲什麼不只是這樣做:

picker.dismiss(animated: true, completion: nil) 

這將解僱imagePickerController並帶你回到那個你打開imagePickerController控制器。

更新:
所以通過創建從包含imagePicker到您想要的圖像通過當用戶完成選擇圖像到新的viewController中的viewController一個SEGUE開始。

之後,你只需調用segue。 segue標識符現在是ShowNewVC這個名稱,以適當的名稱和在prepare函數中,您只需獲取目標viewController並傳遞圖像,因此您需要聲明可設置的圖像變量。

dismiss(animated: true, completion: { 
    if let selectedImage = info[UIImagePickerControllerOriginalImage] as? UIImage { 
     self.performSegue(withIdentifier: "ShowNewVC", sender: selectedImage) 
    } 
}) 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "ShowNewVC" { 
     if let image = sender as? UIImage { 
      let newVC = segue.destination as! NewViewController 
      newVC.image = image 
     } 
    } 
} 
+0

我打開從根視圖控制器的選擇器,所以我需要再轉到一個區域,用戶可以選擇他們想要的媒體發送給誰,這意味着我需要彈出視圖控制器,不只是開除,謝謝 –

+0

因此,當用戶選擇了一張照片,然後你想要去一個新的viewController和使用選定的圖像? –

+0

是的,完全正確 –

0

你不能pop到一個新的視圖控制器。使用present

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 
    if let selectedImage = info[UIImagePickerControllerOriginalImage] as? UIImage { 
     // ... 
    } 
    dismiss(animated: true, completion: { 
     let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "sendPost") 
     present(vc, animated: true, completion: nil) 
    }) 
} 
+0

我已經使用了這種方法,它看起來很尷尬,所以我相信我現在不想放棄選擇器,只提出一個新視圖 –

+0

如果您覺得過渡很尷尬,請設置'animated:false'。 – aaron

+0

好點的男人,真的很好點 –

相關問題