为什么我不能让相机显示?

时间:2011-05-04 13:04:02

标签: iphone ios camera uiimagepickercontroller

遵循几个教程中的这个简单代码,所有这些都非常相似,但我不能让我的生活除了显示一个空白的UIViewController之外做任何事情。 self.imagePicker在.h文件中定义,给定一个属性,然后按正常方式合成:

- (void)viewDidLoad {



    // Create image picker controller
    self.imagePicker = [[UIImagePickerController alloc] init];

    // Set source to the camera
    self.imagePicker.sourceType =  UIImagePickerControllerSourceTypePhotoLibrary;

    // Delegate is self
    //imagePicker.delegate = self;

    NSLog(@"%@", self.imagePicker);

    // Show image picker
    [self presentModalViewController:self.imagePicker animated:YES];

    [super viewDidLoad];
}

3 个答案:

答案 0 :(得分:4)

尝试在viewDidLoad以外的地方加载UIImagePickerView。在过去,当你在另一个的viewDidload方法中呈现一个viewcontroller时,我已经看到了像空白的UIViewController和其他古怪的ViewController行为。也许尝试使用UIViewController方法viewDidAppear。如果不起作用,请将其置于完全独立的方法中,一旦加载了呈现的视图控制器,您将稍微延迟调用。

答案 1 :(得分:1)

self.imagePicker.sourceType =  UIImagePickerControllerSourceTypePhotoLibrary;

您正在将选择器设置到库中,您需要将其设置为相机。

self.imagePicker.sourceType =  UIImagePickerControllerSourceTypeCamera;

编辑:但是,这并不能解释为什么你会得到一个空白视图。

在呈现选择器之前尝试拨打[super viewDidLoad]

答案 2 :(得分:0)

此外,设置使用init调用保留的属性是自动内存泄漏。

这是因为你的保留计数为2。一个用于init,一个用于保留。创建一个变量,将其分配给您的属性然后释放它。

只是一个FYI。