2017-03-01 4 views
0

私は簡単なカメラアプリを作成しています。なぜ "picker.delegate = self needed"ですか?

コードでは、UIImagePickerControllerclassはViewControllerClassインスタンスのデリゲートです。

しかし、なぜこのコードでは "picker.delegate = self"が必要ですか? UIImagePickerControllerの

class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 

    @IBAction func launchCamera(_ sender: UIBarButtonItem) { 

     let camera = UIImagePickerControllerSourceType.camera 

     if UIImagePickerController.isSourceTypeAvailable(camera) { 
      let picker = UIImagePickerController() 
      picker.sourceType = camera 
      picker.delegate = self 
      self.present(picker, animated: true) 
    } 
} 

     func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 

      let image = info[UIImagePickerControllerOriginalImage] as! UIImage 
      self.imageView.image = image 
      UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil) 
      self.dismiss(animated: true) 
     } 
+0

間のビューコントローラのナビゲーションのための UINavigationControllerDelegate屋そのmanodatryは、その後、あなたはrisa8 @現在のクラスで自己 –

+0

= 'picker.delegateを言及する必要があります。 "picker.delegate = self"を設定すると、あなたのコントローラはUIImagePickerControllerDelegateのすべてのデリゲートメソッドを使用します。制御はあなたのコントローラに委譲されます。委任はコントローラに転送されます。 –

+0

はいいいえ –

答えて

0

デリゲートはUIImagePickerControllerDelegateとUINavigationControllerDelegateが含まれています。

写真を撮ったり、を選択についてキャッチ、ユーザーのアクションのUIImagePickerControllerDelegate。あなたがデリゲートをaceessしたい場合はアルバムや写真

関連する問題