3

ルート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;
4

1 に答える 1

8

dismissViewControllerAnimated:NOあなたは自分自身を呼び出すことができますself.navigationController

[self.navigationController dismissViewControllerAnimated:NO completion:nil];
于 2013-01-23T00:26:27.757 に答える