iOS7,有没有办法在 UINavigationViewcontroller 中禁用 UIViewController 的过渡?

Posted

技术标签:

【中文标题】iOS7,有没有办法在 UINavigationViewcontroller 中禁用 UIViewController 的过渡?【英文标题】:iOS7 , Is there a way to disable the transition of UIViewController in UINavigationViewcontroller? 【发布时间】:2013-11-20 05:12:14 【问题描述】:

我在导航控制器中有一个视图控制器,在我将 SDK 升级到 ios7 之前,它的转换效果很好。

将我的开发环境升级到 iOS7 SDK 和 Xcode5 后,我发现我可以将该视图拖出屏幕。

过渡看起来与popViewController:animated: 的相同。看了 iOS7 文档的 UI 过渡部分,我知道这是 iOS7 SDK 中新增的过渡。

但是,我没有找到如何禁用该转换 --- 只是禁用拖动,当我调用 popViewController:animated: 时,我希望弹出该视图控制器。

抱歉,我的描述过于复杂。任何人都可以给我一些提示吗?

提前致谢。

【问题讨论】:

为什么要禁用它?这只是用户关闭视图控制器的一种奇特方式。这与真正点击“返回”按钮相同。 @rmaddy,是的,医生说这与后退按钮的过渡相同。但是,我的应用程序有一个启动视图控制器,它被设置为导航控制器的根。如果我将当前视图拖出,则会显示初始视图,除了终止应用程序之外,我将无能为力。 你应该不能拖出根控制器。还是您的主视图控制器实际上是推到启动视图控制器之上的?不要那样做。 是的,我不应该这样做,但源代码是由其他人编写的,我正在尝试找到一种快速解决此问题的方法,而无需完全修改源代码。有吗? 查看UINavigationController的文档。 【参考方案1】:

听起来你在问类似于this past question 的问题。如果是这样,这是代码:

if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) 
    self.navigationController.interactivePopGestureRecognizer.enabled = NO;

【讨论】:

太棒了!谢谢你。你救了我。

以上是关于iOS7,有没有办法在 UINavigationViewcontroller 中禁用 UIViewController 的过渡?的主要内容,如果未能解决你的问题,请参考以下文章

iOS7相机拍照模式全屏

iOS7中的UITabBar徽章位置

textViewShouldBeginEditing 在 iOS7 中被调用两次

IOS7中的UITextView需要了解占位符[重复]

iOS 7 有没有办法知道 MKTileOverlay 何时完成加载图块?

iOS7 UIPickerView / UIScrollView