Ios UIPageViewController中的UISegmentControl

Ios UIPageViewController中的UISegmentControl,ios,objective-c,uipageviewcontroller,uisegmentedcontrol,Ios,Objective C,Uipageviewcontroller,Uisegmentedcontrol,我有一个UIPageViewController在里面,我有4个页面。我的其中一个页面具有UISegmentControl,用户可以点击或滑动页面以更改片段。我认为它在UIPageController中,所以在UISegmentControl中,滑动会转到不同的页面,而不是滑动操作,或者可能是我犯了一些愚蠢的错误。以下是我所做的。我添加了两个手势识别器,分别向左和向右滑动。并在故事板中完成了这项工作 两种解决方案: 1.在UIPageViewController中处理所有滑动手势。如果不想更改详

我有一个
UIPageViewController
在里面,我有4个页面。我的其中一个页面具有
UISegmentControl
,用户可以点击或滑动页面以更改片段。我认为它在UIPageController中,所以在UISegmentControl中,滑动会转到不同的页面,而不是滑动操作,或者可能是我犯了一些愚蠢的错误。以下是我所做的。我添加了两个手势识别器,分别向左和向右滑动。并在故事板中完成了这项工作

两种解决方案:

1.在UIPageViewController中处理所有滑动手势。如果不想更改详细视图控制器,可以添加公共func来更改某些值。在
UIPageViewControllerDataSource
中,可以返回要显示的任何视图控制器

2.使用UIGestureRecognitizerDelegate。如果您不想获得此手势,只需返回NO/false即可。(在UIPageViewController中为手势设置委托)


是的,由于UIPageController,滑动被重定向到底层的scrollView,这实际上是有意义的。另外,UISegmentControl在点击而不是滑动时工作,所以我认为你没有问题…@deadbeef是的,我把最后一部分做对了,所以我添加了UISegmentControl,这样我就可以重定向到段控件并相应地重新加载tableView。关于第一部分,我应该怎么做?可能使用UIScrollView?您必须使手势识别器与UIPageController手势识别器一起工作。它是通过在委托中实现一些特定的方法来完成的。我建议你检查一下医生,或者问一个具体的问题。从搜索“让多个手势识别器协同工作”或类似的内容开始。@deadbeef我不认为这是关于多个手势的问题更多的是在childVc中识别视图,而在ParentVC中忽略视图谢谢:)我不完全理解它们,但我会试一试,我不明白应该使用哪种委托方法?当我在([touch.view isKindOfClass:[MYClass]])中添加此代码时,我使用的BaseViewController是所有子VC的父级,这给了我一个错误:(
// get gesture recognizer and set delegate    
self.pageViewController!.gestureRecognizers
// decide if page controller should receive gesture
public func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool