UIImageView
ユーザーが選択してボタンを押してカメラで写真を撮る非常にシンプルなアプリがあります。次に、イメージが返され、 に表示されますUIImageView
。
ただし、UIImageViews
は同じデリゲートを共有しているため、 の 1 つに既に画像がありUIImageViews
、別の に配置する写真を撮りに行くと、前のUIImageView
ものは空のコンテンツ (つまり画像なし) に置き換えられます。これは、彼らが同じデリゲートを共有しているためだと思います。委任バージョンを参照する代わりに、本質的にイメージをコピーできる方法はありますか?
サンプルコードは次のとおりです。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {
[picker.parentViewController dismissModalViewControllerAnimated:YES];
if (topView == YES)
{
NSLog(@"topView = %i", topView);
imageView.image = image;
}
else {
NSLog(@"topView = %i", topView);
imageView2.image = image;
}
}
ありがとう!
編集:ボタンが押されたときにIBActionによって呼び出されるコードは次のとおりです
- (IBAction) pushPick {
topView = YES;
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentModalViewController:picker animated:YES];
[picker release];
}
- (IBAction) pushPick2 {
topView = NO;
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentModalViewController:picker animated:YES];
[picker release];
}