在我的根 UIViewController 中,我展示了一个 UINavigationController。UINavigationController 最终推送另一个视图(我们称之为 MyViewController)。如何从 MyViewController 中关闭整个 UINavigationController(以及它推送的视图)?
从 MyViewController,我尝试调用[[self.navigationController presentingViewController] dismissViewControllerAnimated:NO completion:nil]
但没有任何反应。我还尝试过首先将所有视图控制器从导航控制器中弹出,但导航控制器仍然没有被解除。
谢谢!
更新:
我已经找到了导致此问题的原因,但无法解决。上面描述的 UINavigationController 是 UIImagePickerController(我们称之为 CameraController)的自定义子类,源类型为 UIImagePickerControllerSourceTypeCamera。一切都按预期工作(使用下面提供的答案),直到我cameraOverlayView
在viewDidLoad
. 注释掉以下几行可以使事情正常进行:
self.showCameraControls = NO;
UIView *overlay = [[[NSBundle mainBundle] loadNibNamed:@"CameraController" owner:self options:nil] objectAtIndex:0];
self.cameraOverlayView = overlay;