С UIPanGestureRecognizer UINavigationController не работает свайп к спине

В cellForRowAtIndexPath при создании cell Я также добавил UIPanGestureRecognizer в cell и осуществляет всю свою обработку в соответствии с требованием.

И это Tableview содержится в myViewController который содержится в UINavigationController,

С UIPanGestureRecognizerUINavigationController Размах к спине не работает.

Как я могу это сделать, когда пользователь начинает проводить с крайней левой стороны телефона, он выполняет UINavigationController swipe to back не мой жест кастрюли.

-(void)move:(PanGestureRecognizer *)gesture {

    CGPoint location = [gesture locationInView:self];
    NSIndexPath *swipedIndexPath = [self indexPathForRowAtPoint:location];
    TableViewCell *swipedCell  = [self cellForRowAtIndexPath:swipedIndexPath];
    CGRect cellRect = swipedCell.frame;

    if(location.x < 75) {
       ?????
    }

.
.
.
//my pan gesture required functionality
}


-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

1 ответ

Использование requireGestureRecognizerToFail,

вызов: [yourPanGesture requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer в вашем viewController

или же

[cell.gestureRecognizers enumerateObjectsUsingBlock:^(__kindof UIGestureRecognizer * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if ([obj isKindOfClass:[UIPanGestureRecognizer class]]) {
            [obj requireGestureRecognizerToFail:interactivePopGestureRecognizer];
        }
    }];