Objective c 在iOS6中取消显示的UINavigationController
在我的根UIViewController中,我提供了一个UINavigationController。UINavigationController最终会推送另一个视图(我们称之为MyViewController)。如何从MyViewController中取消整个UINavigationController(及其已推送的视图) 在MyViewController中,我尝试调用Objective c 在iOS6中取消显示的UINavigationController,objective-c,uiviewcontroller,ios6,uinavigationcontroller,uiimagepickercontroller,Objective C,Uiviewcontroller,Ios6,Uinavigationcontroller,Uiimagepickercontroller,在我的根UIViewController中,我提供了一个UINavigationController。UINavigationController最终会推送另一个视图(我们称之为MyViewController)。如何从MyViewController中取消整个UINavigationController(及其已推送的视图) 在MyViewController中,我尝试调用[[self.navigationController presentingViewController]dismissVi
[[self.navigationController presentingViewController]dismissViewControllerAnimated:NO completion:nil]
,但没有任何结果。我还尝试过首先将所有视图控制器从导航控制器中弹出,但导航控制器仍然没有关闭
谢谢
更新:
我已经找到了导致这个问题的原因,但还没有解决它。上面描述的UINavigationController是UIImagePickerController(我们称之为CameraController)的一个自定义子类,源类型为UIImagePickerController源类型Camera。一切正常(使用下面提供的答案),直到我在viewDidLoad
中的CameraController上设置自定义cameraOverlayView
。注释掉以下几行可以让事情顺利进行:
self.showCameraControls = NO;
UIView *overlay = [[[NSBundle mainBundle] loadNibNamed:@"CameraController" owner:self options:nil] objectAtIndex:0];
self.cameraOverlayView = overlay;
您可以在
self.navigationController
自身上调用dismissViewControllerAnimated:NO
[self.navigationController dismissViewControllerAnimated:NO completion:nil];
如何展示导航控制器?如何从uiview切换到导航?情态动词如果是,则
[自我解除ModalViewController激活:是]代码>应该工作我正在做的[自我呈现视图控制器:导航控制器动画:无完成:无]
。iOS6中不推荐使用模式内容。“演示视图控制器负责解除其演示的视图控制器。如果您对演示视图控制器本身调用此方法,它会自动将消息转发给演示视图控制器。”您是否尝试仅在导航控制器上调用dismissViewController
?另外,您确定self.navigationController
不是零吗?在navController的第一个viewController上,您可以记录[self-presentingViewController]
和[self.navigationController presentingViewController]
。。。它们是否都返回相同的对象?否。我将在一个新项目上尝试此操作,除了上面描述的内容外,其他内容都没有,以确保没有其他干扰。您是否尝试过打印self.navigationController
?是零吗?是的。这不是零。它是UIImagePickerController的实例。是否将UIImagePickerController显示为模式?那么你从哪里调用上面的代码呢?不确定模型视图是什么…也许你指的是模态。我正在从MyViewController(推送到UIImagePickerController/UINavigationController上的视图控制器)中的iAction调用dismissViewController
。