1

を使用するアプリがUITabBarControllerあり、タブの 1 つはカメラビューで完全に表示されるはずです (Instagram に似ています)。アプリを起動してそのビューに移動すると、ほとんどの画面が空白になり、画像ライブラリ ピッカー/カメラ ビューが読み込まれません。どんな助けでも大歓迎です。

これが私のviewDidLoad方法です:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    imagePicker = [[UIImagePickerController alloc] init];

    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
    } else {
        [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
    }

    [imagePicker setDelegate:self];

    [imagePicker setEditing:NO];

    // Place image picker (camera viewing angle on the screen)
    [self presentViewController:imagePicker animated:YES completion:nil];
}
4

1 に答える 1

0

そのコードを代わりに viewDidAppear に入れてみてください - それは私にとってはうまくいきました。さらに良いのは、viewDidLoad に最後の行を除くすべてを配置することです。これにより、一度だけ呼び出され、viewDidAppear メソッドに最後の行を配置するだけです。画像ピッカー (私がテストした唯一のもの) をキャンセルすると、viewDidAppear が再度呼び出されるため、画像ピッカーが再び表示されるため、imagePickerControllerDidCancel: を実装する必要があります。

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    [self dismissViewControllerAnimated:YES completion:nil];
    self.imagePicker = nil;
}

そして、viewDidAppear に if ステートメントを挿入して、提示する前にピッカーが存在するかどうかを確認します。

if (self.imagePicker) {
    [self presentViewController:self.imagePicker animated:YES completion:nil];
    }
于 2012-07-17T04:52:52.297 に答える