2013-06-25 2 views
0

У меня есть два изображения в моем приложении. я сделал первое правильно. пользователь может выбрать из библиотеки или захватить фотографию и увидеть ее в представлении. Но когда я пытаюсь скопировать коды и вставить их, а также изменить имена объектов и действий, у меня есть ошибки в двух строках.Два ImagePickerControllers в одном представлении

-(IBAction)TakePhoto { 

    picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 
    [picker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
    [self presentViewController:picker animated:YES completion:NULL]; 

} 

-(IBAction)ChooseExisting 

{ 
    picker2 = [[UIImagePickerController alloc] init]; 
    picker2.delegate = self; 
    [picker2 setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
    [self presentViewController:picker2 animated:YES completion:NULL]; 

} 

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 

{ 
    image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    [imageView setImage:image]; 
    [self dismissViewControllerAnimated:YES completion:NULL]; 
} 
-(void) imagePickerControllerDidCancel:(UIImagePickerController *)picker { 

    [self dismissViewControllerAnimated:YES completion:NULL]; 
} 

//the following part is the renamed part 


-(IBAction)TakePhoto2 { 

picker3 = [[UIImagePickerController alloc] init]; 
picker3.delegate = self; 
[picker3 setSourceType:UIImagePickerControllerSourceTypeCamera]; 
[self presentViewController:picker3 animated:YES completion:NULL]; 

} 

-(IBAction)ChooseExisting2 

{ 
picker4 = [[UIImagePickerController alloc] init]; 
picker4.delegate = self; 
[picker4 setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
[self presentViewController:picker4 animated:YES completion:NULL]; 
    } 
ERROR HERE !!-(void) imagePickerController:(UIImagePickerController *)picker3 didFinishPickingMediaWithInfo:(NSDictionary *)info 

{ 
    image2 = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    [imageView2 setImage:image2]; 
    [self dismissViewControllerAnimated:YES completion:NULL]; 
} 
ERROR HERE !!!-(void) imagePickerControllerDidCancel:(UIImagePickerController *)picker3 { 

    [self dismissViewControllerAnimated:YES completion:NULL]; 
} 

для обоих «(пустота)» s я получаю эту ошибку: дублировать объявления метода ImagePickerControllerDidcancel и ImagePickerControllerdidFinishPickingMediaWithINfo

Было бы замечательно, если вы можете исправить код для меня. Благодаря

спасибо за любую помощь и я прошу прощения, если мой английский не достаточно хорошо

ответ

0
-(void) imagePickerController:(UIImagePickerController *)picker3 didFinishPickingMediaWithInfo:(NSDictionary *)info; 

-(void) imagePickerControllerDidCancel:(UIImagePickerController *)picker3; 

Выше оба делегаты UIImagePickerController.

Они должны существуют только один раз в классе контроллера.

Примечание: Изменение имени (-ов) аргумента не изменяет декларацию метода.

+0

Вы должны использовать оператор if внутри этих методов, чтобы выяснить, какой из них выбрал его ('if (picker == self.picker1)') или что-то в этом роде. – mrosales

+0

Можете ли вы уточнить, что у меня недостаточно знаний о развитии. –