2017-08-22 175 views
-2

我想在另一個視圖控制器(「Second」)中顯示拍攝圖像(VC「First」)。 當我點擊「第一」中的按鈕時,我可以拍照。然後我看到兩個選項:重拍和使用照片。點擊後:使用照片我回到了vc「First」,但我想打開新的vc「Second」並在UIImageView中看到圖像。在另一個視圖控制器中快速顯示圖像(圖像視圖)

我創建了「第一」這樣的代碼:

var imagePicker: UIImagePickerController! 

@IBAction func takePhoto(_ sender: Any) { 
    let imagePicker = UIImagePickerController() 
    imagePicker.delegate = self 
    imagePicker.sourceType = UIImagePickerControllerSourceType.camera 
    imagePicker.allowsEditing = false 
    self.present(imagePicker, animated: true, completion: nil) 

    //self.performSegue(withIdentifier: "Second", sender: self) 
} 

能否請你幫我這個問題?

回答

-1

最快的方法是,初始化全局圖像並將該圖像傳遞給它。

寫這些代碼的任何文件(理想地命名爲適當),以外的任何類或結構的:

var globalImage: UIImage? 

然後從照相機有保存圖像,在任何VC顯示它,並且當用戶按下保存,加它無論你想要什麼。只要確保您安全地打開圖像以避免崩潰。

+0

爲什麼我的回答投下了票?它解決了這個要求 –

1

在第一個視圖控制器,你可以添加類變量:

var selectedImage: UIImage? 

然後切換到Main.storyboard。

control +點擊您的第一個視圖控制器,然後從第一個視圖控制器拖放到第二個視圖控制器。在彈出窗口中選擇「show」以創建一個segue。

現在在接口構建器中選擇segue,並在屬性中爲其指定標識符「Second」。 (你可能已經做了,如果你有SEGUE已設置)

那麼,你可以改變這個你現在的方法:

self.present(imagePicker, animated: true, completion: nil) 

這樣:

self.present(self, animated: true) { 
      self.performSegue(withIdentifier: "Second", sender: self) 
     } 

,並添加準備對於第一種方法:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if segue.identifier == "Second" { 
      let destinationVC = segue.destination as! Second 
      if let image = selectedImage { 
       destinationVC.selectedImage = image 
      } 
     } 
    } 

並在第二個你可以添加類變量:

var selectedImage: UIImage! 

,並在第二個視圖控制器的視圖設置你的圖像視圖圖像做負載方法

我敢肯定有做它的其他方式。

相關問題