1

我有一个使用 的应用程序,UITabBarController其中一个选项卡应该是完整的相机视图(类似于 Instagram)。当我启动应用程序并转到该视图时,大部分屏幕都是空白的,并且没有加载图像库选择器/相机视图。任何帮助将不胜感激。

这是我的viewDidLoad方法:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    imagePicker = [[UIImagePickerController alloc] init];

    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
    } else {
        [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
    }

    [imagePicker setDelegate:self];

    [imagePicker setEditing:NO];

    // Place image picker (camera viewing angle on the screen)
    [self presentViewController:imagePicker animated:YES completion:nil];
}
4

1 回答 1

0

尝试将该代码放在 viewDidAppear 中——这对我有用。更好的是,将除最后一行之外的所有内容都放在 viewDidLoad 中,因此它只调用一次,然后将最后一行放在 viewDidAppear 方法中。当您取消图像选择器(我测试的唯一东西)时,它会重新出现,因为 viewDidAppear 将再次被调用,因此您需要像这样实现 imagePickerControllerDidCancel: 以防止这种情况发生:

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    [self dismissViewControllerAnimated:YES completion:nil];
    self.imagePicker = nil;
}

并且,在您的 viewDidAppear 中,放入 if 语句以查看选择器是否存在,然后再尝试显示它:

if (self.imagePicker) {
    [self presentViewController:self.imagePicker animated:YES completion:nil];
    }
于 2012-07-17T04:52:52.297 回答