ユーザーがギャラリー (UIImagePicker) から画像を選択し、別のビュー コントローラーにある UIImageView に画像を表示できるようにする iOS アプリを開発しています。
私の cameraViewController.m では、didFinishPickingMediaWithInfo が呼び出されると、UploadView で setImageNow メソッドが呼び出されます。
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
[picker dismissModalViewControllerAnimated:YES];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
UIImage *image = [info
objectForKey:UIImagePickerControllerOriginalImage];
imageView = [[UIImageView alloc]initWithImage:image];
**UploadView *myUploadViewController = [[UploadView alloc]init];
[myUploadViewController setImageNow:imageView.image];**
}
}
私の UploadView.m では、
- (void)setImageNow:(UIImage*)image{
NSLog(@"yy: %@",image);
if(image != nil){
[selectedImageView setImage:image];
NSLog(@"xx: %@",selectedImageView.image);
}
}
xx と yy の NSLog 値は同じなので、selectedImageView がユーザーが選択した新しい画像に変更されていることを確認できたと思います。ただし、ユーザー インターフェイスでは、新しいイメージは表示されません。デフォルトの画像はまだそこにあります。ビューが読み込まれ、コードがここにある場合、selectedImageView に設定されたデフォルトの画像があります。
- (id)initWithFrame:(CGRect)frame {
if (!(self = [super initWithFrame:frame]))
return nil;
NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"UploadView" owner:self options:nil];
UIView* myView = [nibViews objectAtIndex: 0];
[super addSubview:myView];
return self;
}
問題を解決するためにさまざまな方法を試しましたが、どれもうまくいきません。私のコードの何が問題なのか誰か知っていますか? ありがとう!