<分区>
<分区>
Possible Duplicate:
How to launch iPhone Camera on viewDidLoad?
我试图在我的应用程序启动时打开相机用户界面。问题是,我已经完成了带有开始按钮的相机应用程序,点击该开始按钮,相机就会打开并用于拍摄照片和视频。
我正在尝试从 viewDidLoad 方法调用 startCameraControllerFromViewController,但我遇到了以下异常
警告:尝试呈现不在窗口层次结构中的 View !
这是我的代码
- (void)viewDidLoad
{
imagePicker = [[UIImagePickerController alloc]init];
[self startCameraControllerFromViewController: self
usingDelegate: self];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (BOOL) startCameraControllerFromViewController: (UIViewController*) controller
usingDelegate: (id <UIImagePickerControllerDelegate,
UINavigationControllerDelegate>) delegate {
if (([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeCamera] == NO)
|| (delegate == nil)
|| (controller == nil))
return NO;
UIImagePickerController *cameraUI = [[UIImagePickerController alloc] init];
cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera;
cameraUI.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
cameraUI.allowsEditing = NO;
cameraUI.delegate = delegate;
[controller presentViewController: cameraUI animated: YES completion:nil];
return YES;
}
最佳答案
您可能最好将代码放在 viewWillAppear 或 viewDidAppear 方法中。我的猜测是,即使 View 已加载,它实际上可能还不可见,并且 startCameraControllerFromViewController 调用可能不喜欢那样。
只是一个猜测。
关于ios - 我可以使用 Xcode 在加载应用程序时打开相机吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14492482/