Как поделиться кодом UIImagepickercontroller для 2 кнопок - PullRequest
0 голосов
/ 31 января 2012

В моем проекте я использую UIIamgepickercontroller, чтобы выбрать изображение из библиотеки и загрузить его в UIImageView.Я делаю это для 2 изображений, поэтому у меня есть две кнопки для каждого вида изображения, но я не хочу повторять код для средства выбора изображений дважды, и я не уверен, как реализовать, чтобы метод знал, какой вид изображения загрузитьизображение в.Я думаю, что мне нужно использовать теги кнопок?но не могу найти правильный метод.

вот мой код:

.h

`#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>

@interface LoadViewController : UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate> {
    IBOutlet UIImageView *imageView;
    IBOutlet UIImageView *imageView2;
}

- (IBAction)pick1;
- (IBAction)pick2; 
- (void) getImage;


@end`

.m

#import "LoadViewController.h"

@implementation LoadViewController

UIImage *imageHandle;

- (IBAction)pick2 {

    [self getImage];
    imageView2.image = imageHandle;
}

- (IBAction)pick1{

    [self getImage];
    imageView.image = imageHandle;
}

- (void)getImage {
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.delegate = self;
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        [self presentModalViewController:picker animated:YES];

}


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {
    imageHandle = image;
    [picker.parentViewController dismissModalViewControllerAnimated:YES];

}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    [picker.parentViewController dismissModalViewControllerAnimated:YES];
}

@end

Другая проблема, которую яБыло то, что методы для определения, выбрал ли я изображение или отменил вид, не работают, хотя, если я закомментирую весь метод (void)imagePickerControllerDidCancel, он отменит?!?

IЯ нахожусь на ранней стадии изучения этого материала, и любая помощь будет очень признателен!

Спасибо

1 Ответ

1 голос
/ 31 января 2012

Вы можете идентифицировать кнопку с тегом (вы можете установить это в Интерфейсном Разработчике), который является произвольным целым числом. Проблема в том, что вы отказались от возможности получить ссылку на отправителя (кнопка); вместо - (IBAction)pick1, скажем - (IBAction)pick1:(id)sender. Теперь вы можете проверить отправитель tag (приведите отправителя к UIView *, чтобы компилятор понимал, что вы делаете).

...