设置新视图的 UIImage 并显示

Posted

技术标签:

【中文标题】设置新视图的 UIImage 并显示【英文标题】:Set UIImage of a new view and display it 【发布时间】:2009-05-08 14:26:29 【问题描述】:

我正在尝试设置新视图的图像。我设置控制器的图像,然后显示视图。但是在控制器的viewDidLoad中,没有图片可用。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo 

EditPictureSaveViewController *editPictureController = [EditPictureSaveViewController alloc];

[editPictureController initWithNibName:@"EditPictureSaveView" bundle:[NSBundle mainBundle]];

UIImageView *imageView = [ [ UIImageView alloc ] initWithImage: image ];
[imageView setImage:image];
[editPictureController setPreview:imageView];

[self.navigationController pushViewController:editPictureController animated:YES];

【问题讨论】:

【参考方案1】:

那是因为 viewDidLoad 被调用

[editPictureController initWithNibName:@"EditPictureSaveView" bundle:[NSBundle mainBundle]];

NIB 加载后。

editPictureController 的图像属性(我假设它是一个 UIImageView - 令人困惑!)在此之后才设置。

在 viewWillAppear: 方法中的 viewDidLoad 中执行您正在执行的任何操作 - 您的图像属性将在 pushViewController:animated: 调用 viewWillAppear: 时设置。

【讨论】:

谢谢!现在我将图像存储在 appDelegate 中并将其设置为 viewWillAppear 中的视图: UIImageView 而不是 UIImage 仅用于测试目的 - 忘记将其删除。 ;-) 虽然对这个应用程序来说可能没问题,但要小心使用 AppDelegate 作为数据存储的后备,有效地将其变成全局变量的存储库。这样做不仅会削弱您的 MVC,而且还会导致在内存中携带对象的时间远远超过所需时间。

以上是关于设置新视图的 UIImage 并显示的主要内容,如果未能解决你的问题,请参考以下文章

将 uiimage 设置为 nil 不会使用 ARC 释放内存

如何以编程方式创建 UIImage 视图 - Swift

UIImage IBAction Segue? [关闭]

Swift 3:UIImage 设置为模板图像并更改色调颜色时不显示图像

UIImagePickerController() 确实在 UIImage 视图中显示图像很好,但在集合和表的 UIImage 视图中旋转?

试图显示从一个视图控制器捕获的 UIImage,并在 iOS 中的另一个视图控制器中显示它