重複の可能性:
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;
}