2011-12-20 9 views
23

Assigning to id<UINavigationControllerDelegate,UIImagePickerControllerDelegate> from incompatible type CameraViewController* चेतावनी के लिए नियत picker.delegate = self; लाइनअसंगत प्रकार से 'आईडी <UINavigationControllerDelegate, UIImagePickerControllerDelegate>' 'CameraVIewController *' '

-(IBAction) getPhoto:(id) sender { 
UIImagePickerController * picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 

if((UIButton *) sender == takePhoto) { 
    picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
} else { 
    //picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
} 

[self presentModalViewController:picker animated:YES]; 

} के पास से पता चलता

+0

[यह] [1] सबसे अच्छा जवाब है जिसे मैंने इस प्रश्न के लिए स्थापित किया है। [1]: http://stackoverflow.com/questions/4727895/iphone-uiimagepickercontrollerdelegate-inheritance –

+2

अब मैंने देखा है कि आप भी UINavigationControllerDelegate प्रोटोकॉल के लिए अपने UIViewController आवंटित करने के लिए जरूरत है क्योंकि प्रलेखन UIImagePickerControllerDelegate के लिए इस का कहना है: @property (nonatomic, असाइन) आईडी प्रतिनिधि; तो इसका मतलब है कि आपको इन दोनों प्रोटोकॉल को असाइन करने की आवश्यकता है। –

उत्तर

7

The documentation for UIImagePickerController का कहना है कि प्रतिनिधि UIImagePickerControllerDelegate प्रोटोकॉल को लागू करना होगा। आपका CameraViewController या तो इस प्रोटोकॉल को लागू नहीं करता है, या यह घोषणा नहीं करता है कि यह अपने शीर्षलेख में ऐसा करता है।

+7

डाउनवॉटेड। आपको 'UINavigationControllerDelegate' – Honey

80

ध्यान दें कि आपको छवि पिकर का उपयोग करने के लिए UIImagePickerControllerDelegate और UINavigationControllerDelegate प्रोटोकॉल दोनों के अनुरूप होना चाहिए।

+2

के अनुरूप भी होना चाहिए यह एक मेरे लिए किया था। धन्यवाद! – Mike

+3

इसे सही चिह्नित किया जाना चाहिए - अधिकांश लोग उम्मीद करते हैं कि UIImagePickerControllerDelegate की आवश्यकता है, लेकिन यह अनदेखा करें कि यह UINavigationControllerDelegate के लिए भी पूछ रहा है। आपके उत्तर के लिए धन्यवाद। – Adama

+2

पृथ्वी पर क्यों इसे UINavigationControllerDelegate की आवश्यकता है? यह एक असली रहस्य है। – fatuhoku

13

बस दोनों प्रोटोकॉल जोड़ें।

@interface MyViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate> 

फिर प्रतिनिधि को स्पष्ट रूप से सेट करें। :)

संबंधित मुद्दे