1

私はUITabBarControllerに4つのタブがあり、私はtabBarの4番目のViewControllerからUIImagePickerControllerを提示しています。画像を選択するか、単にピッカーをキャンセルした後、それは私の最初のタブ(0インデックス)に戻って私を取るかどうか、私のUIImagePickerControllerは、私の第四タブから却下された場合UIImagePickerControllerを終了すると、UITabBarControllerが0にリセットされます - iOS

(すべてのタブviewControllersはUINavigationController中に埋め込まれています)。

私の4番目のtab viewControllerにとどまるはずです。なぜこうなった?助けてください

- (void)takeNewPhotoFromCamera 
{ 
    if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) 
    { 
     UIImagePickerController *controller = [[UIImagePickerController alloc] init]; 
     controller.sourceType = UIImagePickerControllerSourceTypeCamera; 
     controller.allowsEditing = NO; 
     //controller.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType: UIImagePickerControllerSourceTypeCamera]; 
     controller.delegate = self; 
     [self presentViewController: controller animated: YES completion: nil]; 

    } 
} 

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

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [picker dismissModalViewControllerAnimated:YES]; 
} 

を:私はすべてのコードで検索しないと、私はこれがUIImagePickerControllerを提示し、それを却下する私のコードですtabBarController.setSelectedIndex = 0;

を記載しているところ何がありますしています。

ありがとうございます!

+0

あなたはtabbarcontrollerではなく、埋め込まれたビューコントローラからピッカーを提示しようとしましたか? – BJHStudios

+0

'(void)takeNewPhotoFromCamera'メソッドはどこに呼び出しますか? 'tabBarController'または' yourViewController'の中 –

+0

@BJHStudiosはい。解約後にtabBarControllerと同じ問題からピッカーを提示しようとしました。 – hyd00

答えて

3

ちょうどイメージピッカーのmodalPresentationStyleOverCurrentContextにを設定することで解決策を見つけた:

UIImagePickerController *controller = [[UIImagePickerController alloc] init]; 
controller.sourceType = UIImagePickerControllerSourceTypeCamera; 
controller.allowsEditing = NO; 
controller.delegate = self; 
controller.modalPresentationStyle = UIModalPresentationOverCurrentContext; //This is the magical line 
[self presentViewController: controller animated: YES completion: nil]; 
関連する問題