gpt4 book ai didi

iphone - UIImagePickerController图像,显示到另一个类

转载 作者:行者123 更新时间:2023-11-29 04:15:44 25 4
gpt4 key购买 nike

我想出现在“PreviewViewController”的“UIImageView”中用“ViewController”拍摄的图片。

但我不能。

请告诉我

ViewController.m

-(void)imagePickerController:(UIImagePickerController *)pic  didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[imagePicker dismissViewControllerAnimated:YES completion:NO];

UIImage *originalImage;
originalImage = [info objectForKey:UIImagePickerControllerOriginalImage];

CGSize size = { 100, 200 };
UIGraphicsBeginImageContext(size);

CGRect rect;
rect.origin = CGPointZero;
rect.size = size;
[originalImage drawInRect:rect];
UIImage* shrinkedImage;
shrinkedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

CGRect r = CGRectMake(0, 60, 100, 100);
CGImageRef cgImage = CGImageCreateWithImageInRect(shrinkedImage.CGImage, r);
iconImage = [UIImage imageWithCGImage:cgImage];
UIImageWriteToSavedPhotosAlbum (iconImage, nil, nil , nil);

// This problem!!!
PreviewViewController *p = [[PreviewViewController alloc] init];
p.imagePreview.image = iconImage;
[self presentViewController:p animated:YES completion:NO];
}

PreviewViewController.h

@property (nonatomic) UIImageView *imagePreview;

最佳答案

您是否创建了可以接收 iconImage 的 UIImageView?
乍一看我会说p.imagePreview == nil当您尝试为其分配图像时。

如果它是在 .xib 中创建的,请确保 socket 已连接。


从您的评论中我了解到您正在 viewDidLoad 创建 UIImageView ,在 View 被要求转到屏幕之前通常不会调用它(有一些方法可以强制它更快地追加)。
这意味着 p.imagePreview可能是nil当您在那里分配图像时。
您是否尝试输入 breakpoint或发送至NSLog(@"%@", p.imagePreview);查看实例是否有效?
如果是nil那时我至少可以想到两种方法来解决这个问题。


您需要修改 UIViewController 生命周期才能理解为什么您的 p.imagePreview 是 nil .
我建议您输入NSLog()UIViewController 的每个方法的开头生命周期方法。 (所有 viewDid...、viewWill...、)可以清晰地了解生命周期并了解事物何时被系统调用。

对于你的问题,你可以定义 @property (nonatomic, strong) UIImage *anImage并将您想要在 ImageView 中使用的图像存储在那里,并在 viewDidLoad 中初始化 UIImageView 时使用该图像。 .
由于您没有使用 .xib,您还应该考虑覆盖 loadView .

关于iphone - UIImagePickerController图像,显示到另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13756320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com