遵循几个教程中的这个简单代码,所有这些都非常相似,但我不能让我的生活除了显示一个空白的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];
}
答案 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。