2017-03-01 8 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

나중에는 manodatry 사이의 뷰 컨트롤러 탐색을위한 UINavigationControllerDelegate, 당신은 risa8 @ 현재 클래스 –

+0

에'picker.delegate = 자신을 언급 할 필요가있다. "picker.delegate = self"를 설정하면 컨트롤러가 UIImagePickerControllerDelegate의 모든 대리자 메서드를 사용합니다. 컨트롤러는 위임이 사용자의 컨트롤러로 전송된다는 것을 의미합니다. –

+0

예 그렇습니다. –

답변

0

대리인 UIImagePickerControllerDelegate 및 UINavigationControllerDelegate를 포함한다. 캐치 사용자의 행동에 대한 걸릴 사진에 대한

UIImagePickerControllerDelegate는 또는 사진을 선택합니다. 그런 다음 대리자를 aceess하려면 앨범 및 사진

관련 문제