Xcode4 当ModalViewController打开时禁用UIPageViewController

Xcode4 当ModalViewController打开时禁用UIPageViewController,xcode4,uigesturerecognizer,uipageviewcontroller,Xcode4,Uigesturerecognizer,Uipageviewcontroller,我对这个网站完全陌生,但我已经喜欢它了:-) 我通过搜索有关UIPageViewController的问题找到了它 我有一个普通的UIPageViewController应用程序,在其中我打开一个ModalViewController来设置一些设置 现在问题来了::-) 如果我单击ModalView右侧的“完成”按钮将其关闭,则PageViewController会翻页,因为他认为这是他的意思;-) 只要打开了ModalView,是否可以禁用PageViewController手势识别器 是否有

我对这个网站完全陌生,但我已经喜欢它了:-)

我通过搜索有关UIPageViewController的问题找到了它

我有一个普通的UIPageViewController应用程序,在其中我打开一个ModalViewController来设置一些设置

现在问题来了::-)

如果我单击ModalView右侧的“完成”按钮将其关闭,则PageViewController会翻页,因为他认为这是他的意思;-)

只要打开了ModalView,是否可以禁用PageViewController手势识别器

是否有一种方法可以禁用和更新他的识别器

提前感谢您的帮助


cu Matze

您的
UIPageViewController
会从其上呈现的模式视图中窃取触摸,这似乎很奇怪。除非您将模态视图嵌入到
UIPageViewController
的内容中

要回答您的问题,您可以通过枚举页面视图控制器的
手势识别器
属性(一个
NSArray
)轻松禁用页面视图控制器的手势识别器:

稍后使用
setEnabled:YES
重新启用它们

更新:


在iOS 6中,添加了
UIPageViewControllerTransitionStyleScroll
UIPageViewController
s使用此转换样式时,在
gesturecognitioners
返回的数组中不返回任何手势识别器。假定具有此转换样式的页面视图控制器使用底层私有的
UIScrollView
实例(其行为类似于启用分页的
UIScrollView
),但我没有选中此项。

不使用页面视图控制器的手势识别器属性返回空数组:(@Johnykutty从“基于页面的应用程序”模板在Xcode中创建新项目,并在
[RootViewController viewDidLoad]中放置断点时)
,新初始化的
pageViewController
手势识别器
属性返回平移手势识别器和点击手势识别器。我建议您自己的代码可能有其他问题。您正在检查的对象是否确实是
UIPageViewController
的有效实例?我找到了原因n它仅在transitionStyle为UIPageViewControllerTransitionStyleScroll时发生。您知道在使用transitionStyle时禁用滚动的方法吗UIPageViewControllerTransitionStyleScroll@Johnykutty啊,很好-我没有注意到iOS6中添加了滚动过渡样式。我不知道有什么方法可以实现您想要的效果我会猜到在
pageViewController:viewControllerBefore/AfterViewController:
数据源方法中尝试返回
nil
(这就是防止页面卷曲转换的方法),但是滚动视图仍然执行橡皮筋效果拖动。如果尚未在堆栈溢出上询问滚动视图,则可能值得提出一个新问题。好的,我已尝试在afterviewcontroller委托方法中返回nil。但当我转到b时,它将视图控制器返回afterviewcontroller newxtime时,会出现一些奇怪的行为确认并再次返回,即使它为零,前一个viewcontroller仍存在:(
for (UIGestureRecognizer *gr in [self.pageViewController gestureRecognizers]) {
    [gr setEnabled:NO];
}