ルートUIViewControllerで、UINavigationControllerを提示します。UINavigationControllerは、最終的に別のビューをプッシュします(これをMyViewControllerと呼びます)。UINavigationController全体(およびそれがプッシュしたビュー)をMyViewControllerから閉じるにはどうすればよいですか?
MyViewControllerから呼び出してみまし[[self.navigationController presentingViewController] dismissViewControllerAnimated:NO completion:nil]
たが、何も起こりませんでした。また、最初にすべてのビューコントローラーをナビゲーションコントローラーからポップしようとしましたが、それでもナビゲーションコントローラーは閉じられませんでした。
ありがとう!
更新:
この問題の原因を突き止めましたが、解決できませんでした。上記のUINavigationControllerは、ソースタイプUIImagePickerControllerSourceTypeCameraを持つUIImagePickerController(これをCameraControllerと呼びます)のカスタムサブクラスです。cameraOverlayView
でCameraControllerにカスタムを設定するまで、すべてが期待どおりに機能します(以下の回答を使用)viewDidLoad
。次の行をコメントアウトすると、機能します。
self.showCameraControls = NO;
UIView *overlay = [[[NSBundle mainBundle] loadNibNamed:@"CameraController" owner:self options:nil] objectAtIndex:0];
self.cameraOverlayView = overlay;