Ios 将手势转发到superview

Ios 将手势转发到superview,ios,objective-c,uiview,uigesturerecognizer,first-responder,Ios,Objective C,Uiview,Uigesturerecognizer,First Responder,所以我得到了这个场景: -NavigationController -PageViewController -MapViewController -UIView -MKMapView (Full Screen) -OtherViewController 因此,基本上,我希望它在捕捉UIScreenedGe手势时切换页面(视图控制器)。但是把地图放在其中一个里面,这就不能正常工作了 我对此做了很多研究,但仍然没有找到正确的解决方案 我相信正确的方法是将这个手势委托给层次结

所以我得到了这个场景:

-NavigationController
 -PageViewController
  -MapViewController
   -UIView
    -MKMapView (Full Screen)
  -OtherViewController
因此,基本上,我希望它在捕捉UIScreenedGe手势时切换页面(视图控制器)。但是把地图放在其中一个里面,这就不能正常工作了

我对此做了很多研究,但仍然没有找到正确的解决方案

我相信正确的方法是将这个手势委托给层次结构中的下一个响应者

因此,我成功地捕捉到了用户在屏幕左边缘滑动时的手势

现在我的问题是我无法将手势传递给UIView(MKMapView.superview)。 我有两个问题:

//1。怎么做 // 2. 这是正确的方法吗?

请让我知道你对这件事的想法

编辑1: 添加故事板的一些代码和图像

UIScreenEdgePanGestureRecognizer *popRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:[self.view superview] action:@selector(handlePopRecognizer:)];
popRecognizer.edges = UIRectEdgeLeft;
popRecognizer.delegate = self;

[self.mapView addGestureRecognizer:popRecognizer];

编辑2:我想要这种行为:

但是当手势被识别时,我希望它切换到左边的页面(OtherViewController)

最后一次编辑:我提出的解决办法是在地图上方放置一个清晰的视图,从而实现所需的行为。对解决方案不满意,但目前它仍然有效


创建手势时,将目标设为superview,并在superview中调用该动作的方法,如:

    UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:[self.view superview] action:@selector(swipeHandler:)];

不知道MKMapView.superview是否有效,这取决于MKMapView是否为实例。没有代码很难知道您指的是什么。

没有太多代码可添加。我尝试过你的方法,但没有成功。我正在尝试了解调用哪个方法,以便pagecontroller处理手势我正在使用默认的pageviewcontroller,因此我想我应该调用pageviewcontroller:viewControllerBeforeViewController:。但我想目标不对。当我打印self.view.superview时,它返回null。