我有一个带有2个ViewControllers的故事板,第一个ViewController有一个按钮从相册中选择一张照片。第二个ViewController有一个ImageView。 结果是黑屏。
这是委托方法:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[self dismissViewControllerAnimated:NO completion:nil];
UIImage * selectedIMG = [info objectForKey:UIImagePickerControllerOriginalImage];
VCImageEditingViewController *ieVC = [self.storyboard instantiateViewControllerWithIdentifier:@"VCImageEditingViewController"];
ieVC.selectedIMG = selectedIMG;
[self presentViewController: ieVC animated:NO completion:nil];
}
在VCImageEditingViewController.m中:
-(void)loadView
{
if (self.selectedIMG) {
self.imageDisplayed.image = self.selectedIMG;
}
else{
UIImage *image = [UIImage imageNamed:@"hat.jpg"];
self.imageDisplayed.image = image;
}
}
即使我更改了if语句以显示" hat"两张照片中的照片都显示我是黑屏,所以我很确定它与图像选择器有关。
感谢您的帮助。
答案 0 :(得分:0)
我认为问题在于您为故事板中设置的控制器覆盖了loadView。
文档说的是loadView:
如果使用Interface Builder创建视图并初始化视图控制器,则不得覆盖此方法。 ....
如果要对视图执行任何其他初始化,请在viewDidLoad方法中执行此操作。
尝试覆盖-(void) viewDidLoad
,并设置ImageView的图像(假设您已将self.imageDisplay
设置为视图控制器的视图的子视图)。
答案 1 :(得分:0)
两件事:
loadView
并致电viewDidLoad
[super viewDidLoad]
[self.view sendSubviewToBack:self.imageDisplayed];
不会在图片视图上显示图片,应为:self.imageDisplayed.image = self.selectedIMG;