我正在开发一个 iOS 应用程序,它可以允许用户从图库(UIImagePicker)中选择图像并在不同视图控制器中的 UIImageView 中显示图像。
在我的 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;
}
我尝试了不同的方法来解决这个问题,但它们都不起作用。有谁知道我的代码有什么问题?谢谢!