0

我有一个带有 2 个 ViewController 的故事板,第一个 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 语句以显示“帽子”照片,它也会显示黑屏,所以我很确定它与图像选择器有关。

感谢您的帮助。

4

2 回答 2

0

我认为问题在于您正在覆盖 loadView,对于您在情节提要中设置的控制器。

文档说 loadView:

如果您使用 Interface Builder 创建视图并初始化视图控制器,则不得覆盖此方法。……

如果要对视图执行任何其他初始化,请在 viewDidLoad 方法中执行此操作。

尝试改写-(void) viewDidLoad,并在那里设置 ImageView 的图像(假设您已设置self.imageDisplay为 View Controller 的视图的子视图)。

于 2013-10-12T06:22:41.937 回答
0

两件事情:

  • loadView在应该使用viewDidLoad和调用时使用[super viewDidLoad]
  • 该行:[self.view sendSubviewToBack:self.imageDisplayed];不在图像视图上显示图像,它应该是:self.imageDisplayed.image = self.selectedIMG;
于 2013-10-12T06:41:10.430 回答