【发布时间】:2012-02-22 14:22:03
【问题描述】:
我正在为 iPhone 创建一个应用程序,该应用程序应该以相机模式启动(顶部有自定义布局,但稍后会出现)。我已经创建了这个应用程序的一个版本,我可以在其中按下一个按钮,让我可以从 iPhone 相册中选择一张照片或拍摄一张新照片。
尝试在不同的地方使用相同的代码失败。
最初我有一个函数“takePicture”,我用它来启动相机
- (void)takePicture
{
isInCaptureMode = YES;
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.mediaTypes =
[UIImagePickerController availableMediaTypesForSourceType:
UIImagePickerControllerSourceTypeCamera];
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
imagePicker.videoQuality = UIImagePickerControllerQualityTypeMedium;
// set delegate
[imagePicker setDelegate:self];
// Place image picker on the screen
[self presentModalViewController:imagePicker animated:YES];
[imagePicker release];
}
所以我对自己说“我可能可以创建一个单一的视图应用程序,将此代码放入视图控制器的 viewDidLoad 函数中,并以此为起点”。但很可惜,我一直被困在那里。当我这样做时,应用程序启动并且(如果设备有摄像头)屏幕变黑,如果设备没有摄像头(iPad 或模拟器),则应用程序崩溃。
我最初使用 Xcode 3 创建应用程序,但现在已迁移到 4.2,但原始应用程序在 4.2 中运行良好(在我做了一些调整之后)
谁能解释为什么会这样?
【问题讨论】:
-
刚刚发现出了什么问题...我需要在“viewDidAppear”而不是“viewDidLoad”中调用我的代码。