0

我有UINavigationController一个UIPanGestureRecognizer

MyNavController.m
...

menuGesture.delegate = self;
[self.view addGestureRecognizer:menuGesture];

它工作得很好,但我需要UIPanGestureRecognizer在我的一个topViewControllers. 我试过self.view.gestureRecognizers = nil了,但没有用。

4

3 回答 3

0

如果您需要启用/禁用您在控制器中添加的某些手势识别器,一种方法是通过属性公开该手势识别器,然后随意启用/禁用它:

@property(nonatomic, assign/weak) UIPanGestureRecognizer* myGestureRecognizer;

...

[(MyNavController*)myController.navigationController myGestureRecognizer].enabled = NO;

(当然,您menuGesture将存储在 myGestureRecognizer 中以使其正常工作)。

于 2013-10-07T15:53:59.267 回答
0

您需要订阅 UIGestureRecognizerDelegate,然后确定是否应在gestureRecognizer:shouldReceiveTouch 中允许该手势:

于 2013-10-07T15:55:52.857 回答
0

像这样尝试:UINavigationController 有一个名为的方法

- (void)removeGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
于 2013-10-07T15:57:39.280 回答