0

私は presentViewController:imagePickerController を使用して UIImagePickerController を表示しています。何らかの理由で、そのコントローラーを閉じると、元のナビゲーションコントローラーがスタックを失い、アプリケーションがルートビューコントローラーに戻ります。

self.navigationController.viewControllers をログに記録しています。presentViewController:imagePickerController 行を実行した後、ナビゲーション コントローラーがルート コントローラーを除くすべてのコントローラーを失っていることがわかります。

 UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
 imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
 imagePickerController.sourceType = sourceType;
 imagePickerController.delegate = self;
 imagePickerController.navigationBarHidden = YES;

 self.imagePickerController = imagePickerController;

DLog(@"self.navigationController:%@",self.navigationController.viewControllers);
[self.navigationController presentViewController:imagePickerController animated:YES completion:^{
        DLog(@" after presenting self.navigationController:%@",self.navigationController.viewControllers);

    }];

////閉じる

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    DLog(@"self.navigationController:%@",self.navigationController.viewControllers);
    [self.navigationController dismissViewControllerAnimated:YES completion:^{

    }];
}

/////私のNCがセットアップされている場所

OFMainViewController *mainController = [[OFMainViewController alloc]init];
    mainController.managedObjectContext = self.managedObjectContext;
    navigationController = [[UINavigationController alloc]initWithRootViewController:mainController];
[self.window setRootViewController:navigationController];
4

2 に答える 2

0

imagePickeControllerではselfなく でプレゼンテーションを行う必要がありself.navigationControllerます。

[self presentViewController:imagePickerController animated:YES completion:^{
    DLog(@" after presenting self:%@",self.navigationController.viewControllers);

}];

それに応じて却下します。

////Closing it

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    DLog(@"self.navigationController:%@",self.navigationController.viewControllers);
    [self dismissViewControllerAnimated:YES completion:^{

    }];
}
于 2013-08-20T13:26:46.053 に答える