2012-01-17 71 views
0

我有兩個類:View1和SelectImage。 View1導入SelectImage。 SelectImage用於向用戶呈現UIView,允許用戶選擇如何從設備中抓取照片。輕擊按鈕在該列表中,然後將消息發送到的以下方法之一...無法獲取UIImagePickerController工作

在此代碼:

-(void)importFromCamera:(id)sender 
{ 
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
    [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
    [imagePicker setDelegate:self]; 
    [self presentModalViewController:imagePicker animated:YES]; 
} 

-(void)importFromPhotoLibrary:(id)sender 
{ 
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
    [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
    [imagePicker setDelegate:self]; 
    [self presentModalViewController:imagePicker animated:YES]; 
} 

-(void)importFromSavedPhotosAlbum:(id)sender 
{ 
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
    [imagePicker setSourceType:UIImagePickerControllerSourceTypeSavedPhotosAlbum]; 
    UIViewController *viewController = [UIViewController alloc]; 
    [imagePicker setDelegate:self]; 
    [self presentModalViewController:imagePicker animated:YES]; 
} 

編譯器會抱怨:

接收機類型「SelectImage」的實例消息不具有選擇聲明一個 方法「presentModalViewController:動畫:」

在的每個實例[self presentModalViewController:imagePicker animated:YES];

不知道我錯過了什麼。我環顧四周,只能找到能夠把所有東西放在同一個班級的例子。

是因爲該類是UIView而不是UIViewController?我很確定我有必要的代表協議:。

我試圖讓這個功能包含在一個類中,以允許其他視圖也可以使用它(View2,View3等)。

謝謝!

回答

0

是的。 presentModalViewController是UIViewControllerUIView

注意,在iOS 5中使用的首選方法的方法是:

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion 

SelectImage類可以有一個代表,你的UIViewController工具。 SelectImage類上的按鈕的操作方法將調用您的委託(即UIViewController)。

0

SelectImage應該是一個UIViewController。將其稱爲SelectImageController,然後view1可以添加它的視圖,如[view1 addSubview:self.selectImageController.view];