设置新视图的 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 释放内存
Swift 3:UIImage 设置为模板图像并更改色调颜色时不显示图像
UIImagePickerController() 确实在 UIImage 视图中显示图像很好,但在集合和表的 UIImage 视图中旋转?