0

我正在开发一个 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;
}

我尝试了不同的方法来解决这个问题,但它们都不起作用。有谁知道我的代码有什么问题?谢谢!

4

0 回答 0