【发布时间】:2015-02-08 00:09:58
【问题描述】:
所以我有这个场景:
-NavigationController
-PageViewController
-MapViewController
-UIView
-MKMapView (Full Screen)
-OtherViewController
所以基本上,我希望它在捕捉 UIScreenEdgeGesture 时切换页面(视图控制器)。但是将地图放在其中一个中,这将无法正常工作。
我对此进行了很多研究(!),但仍未找到正确的解决方案。
我相信这里正确的做法是将这个手势委托给层次结构中的 nextResponder。
所以我已经成功捕捉到用户在屏幕左边缘滑动时的手势。
现在我的问题是我无法将手势传递给 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:我想要这种行为:Use UIScreenEdgePanGestureRecognizer without moving MKMapView
但是当手势被识别时,我想让它切换到左边的页面(OtherViewController)
最终编辑:我想出的解决方法是在地图顶部放置一个清晰的视图,从而实现所需的行为。对解决方案不满意,但它现在有效。
【问题讨论】:
标签: ios objective-c uiview uigesturerecognizer first-responder