在我的根UIViewController中,我呈现了一个UINavigationController。 UINavigationController最终推送另一个视图(让我们称之为MyViewController)。如何从MyViewController中解除整个UINavigationController(及其推送的视图)?
从MyViewController,我试过调用[[self.navigationController presentingViewController] dismissViewControllerAnimated:NO completion:nil]
,但没有任何事情发生。我还尝试首先从导航控制器弹出所有视图控制器,但仍然没有解除导航控制器。
谢谢!
更新:
我已经找到导致这个问题的原因,但还没有能够解决它。上面描述的UINavigationController是UIImagePickerController的自定义子类(我们称之为CameraController),源类型为UIImagePickerControllerSourceTypeCamera。一切都按预期工作(使用下面提供的答案),直到我在cameraOverlayView
的CameraController上设置自定义viewDidLoad
。评论以下几行可以解决问题:
self.showCameraControls = NO;
UIView *overlay = [[[NSBundle mainBundle] loadNibNamed:@"CameraController" owner:self options:nil] objectAtIndex:0];
self.cameraOverlayView = overlay;
答案 0 :(得分:8)
您可以在dismissViewControllerAnimated:NO
上致电self.navigationController
。
[self.navigationController dismissViewControllerAnimated:NO completion:nil];