我有一个UIImageView,我想加载来自UIImagePickerController实例的图片,以便向用户显示预览。我的应用程序具有一个TabBarViewController,为了隐藏该栏,我以模态显示选择器和预览。

我用于预览的控制器已建立在Interface Builder上,并且它拥有一个空的UIImageView。拍摄完照片后,我试图设置UIImageView的图像,但IBOutlet始终为零。这是我为了达到我想要的目的而想到的:

[self.view addSubview:self.previewController.view];
[self.previewController.imageView setImage:self.scaledPicture];
[self presentModalViewController:self.previewController animated:YES];


我仍然不确定这是正确的方法,但是如果我不使用上面的第一行,那么self.previewController.imageView将为nil。该行的视觉效果没有影响,因为模态视图涵盖了所有内容。

我检查了IB中的链接很多次,它们似乎都是正确的。

这是正确的进行方式吗?

最佳答案

如果您刚刚创建了previewController,则其viewView将为nil,因为尚未加载该视图。第一行似乎使它起作用的原因是因为它导致视图加载。

您应该做的是在PreviewController上具有一个image属性,您可以在此处分配它。然后将图像加载到PreviewController的imageView中的viewDidLoad中。这样,您还可以避免戳其他视图控制器的视图。

09-05 17:51