1

imagePickerという名前のUIImagePickerControllerがあります

UIImagePickerController * imagePicker;

メソッドを使用しています

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo

どの imagePicker が使用されているかを知る必要があります。たとえば、UIAlertView などの他のタグを設定できますが、それらは UIImagePickerController と同等ですか? または、どちらが呼び出されているかをどのように確認しますか。

4

4 に答える 4

11

以下を使用できます。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
   if(picker == _imagePicker)
       //do your task
}

または次のようなタグを設定します。

imagePicker.view.tag = 7;

次に、次のように確認します。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
   if(picker.view.tag == 7)
       //do your task
}
于 2013-07-24T12:22:01.300 に答える
1

プロパティとして持っているさまざまな画像ピッカーへの参照を保持します。次に、それらのポインター値を比較します。

if (picker == self.picker1) {
    // ...
} else if (picker == self.picker2) {
    // ...
} ...

ピッカーの使用が終了したら、それらのプロパティを nil に設定して、それらをクリーンアップできるようにします。

本当に「タグ付け」したい場合は、Objective-C の連想参照を使用できます。

于 2013-07-24T12:19:53.930 に答える
0

imagepicker のインスタンスを ivar またはプロパティに保存します。同じインスタンスかどうかを確認した後。

@interface MyImagePicker : UIViewController
{
    UIImagePickerController * _ imagePicker;
}   

@implementation 
- (void)showImagePicker {
   _imagePicker = [[UIImagePickerController alloc] init];
   //config and show
}

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {
if(picker == _imagePicker) {
  //My picker do stuff here
}
于 2013-07-24T12:25:06.937 に答える