0

次のエラーが表示されます。

[CameraViewController presentViewController:animated:completion:]: 認識されないセレクターがインスタンス 0x8e07d0 に送信されました

コード部分は次のとおりです。

self.view.alpha = 0.5f;
[self.navigationController setNavigationBarHidden:YES];
UIImagePickerController *imagepicker=[[UIImagePickerController alloc]init];
[imagepicker.view setBackgroundColor:[UIColor blackColor]];
imagepicker.delegate=self;
 imagepicker.sourceType=UIImagePickerControllerSourceTypeCamera;
[self presentViewController:imagepicker animated:YES completion:nil];

デバイスで使用可能なカメラがあるかどうか、以前のコントローラーで既にチェックインしました。これは、カメラ付きのデバイスで確認しているときに表示されます。

最後の行に「nil」がある場合、何か他のものを用意する必要がありますか?

4

1 に答える 1

3

このUIViewController presentViewController:animated:completion:メソッドは iOS 5.0 で追加されました。このエラーは、以前のバージョンの iOS を使用していることを示しています。その場合は、presentModalViewController:animated:代わりに使用してください。必要に応じて、実行時に適切なものを使用できます。

if ([self respondsToSelector:@selector(presentViewController:animated:completion:)]) {
    [self presentViewController:imagepicker animated:YES completion:nil];
} else {
    [self presentModalViewController:imagepicker animated:YES];
}

ビューコントローラーを閉じるメソッドにも同様の状況があります。

于 2013-02-22T23:56:56.557 に答える