大佬教程收集整理的这篇文章主要介绍了objective-c – 在ios6中,将pageViewController的gestureRecognizers委托给viewController导致崩溃,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
PCRootViewControlle::viewDidLoad()
for (UIGestureRecognizer *gR in self.pageViewController.gestureRecognizers) { gR.delegate = self; }
您需要分配viewController以使其符合UIGestureRecognizerDelegate并实现该方法
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch (UITouch *)touch { return YES; }
现在,如果您运行应用程序并尝试将页面超出界限,即转到1月并尝试返回
>(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
返回零.
该应用程序将崩溃.
ios5没有发生这种情况.我需要将gestureRecognizer委托分配给我的viewController,因为我并不总是希望pageViewController处理触摸事件.
有没有其他经历过这个或指出如果我做错了什么?
非常感谢
斯图尔特.
问题是如果将pageViewControllers委托设置为viewController
for (UIGestureRecognizer *gR in self.pageController.view.gestureRecognizers) { if ([gR isKindOfClass:[UITapGestureRecognizer class]]) { gR.enabled = NO; } else if ([gR isKindOfClass:[UIPanGestureRecognizer class]]) { gR.delegate = self; } }
然后返回零
pageViewController:viewControllerAfterViewController:
会崩溃!仅限iOS6 !!
我的问题是我需要设置gestureRecognisers的委托,因为我需要在某些情况下截取panGesture,即不允许用户翻页,因为那里有一些按钮触摸它的某些部分.
pageViewController:viewControllerAfterViewController:
成
gestureRecognizer:shouldReceiveTouch:
因为只要我们从那里返回NO,它就不会继续打电话
pageViewController:viewControllerAfterViewController:
所以不需要返回nil并且崩溃.
但是,这在序列的第一页和最后一页上不起作用.例如,在第一页上,您希望允许页面前进但不返回.所以我想看看传入的GestureRecogniser,将其投射到PanGesture,然后检查速度,如果速度表示转回(> 0.0f),则返回NO.这听起来不错,但速度始终为零.
然后我在GestureRecognizer委托上找到了一个非常有用的小功能:
gestureRecognizerShouldBegin:gestureRecognizer
gestureRecognizer:shouldReceiveTouch:
以上是大佬教程为你收集整理的objective-c – 在ios6中,将pageViewController的gestureRecognizers委托给viewController导致崩溃全部内容,希望文章能够帮你解决objective-c – 在ios6中,将pageViewController的gestureRecognizers委托给viewController导致崩溃所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。