重複の可能性:
viewDidLoad で iPhone カメラを起動するには?
アプリケーションの開始時にカメラ UI を開こうとしています。問題は、スタートボタンをクリックするとカメラが開き、写真やビデオをキャプチャするために使用されるスタートボタンを備えたカメラアプリを既に作成したことです。
viewDidLoad メソッドから startCameraControllerFromViewController を呼び出そうとしていますが、次の例外に直面しています
警告: ウィンドウ階層にないビューで表示しようとしています!
ここに私のコードがあります
- (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;
}