/ / iOS 11 - działanie przycisku paska nie uruchamia się, jeśli do paska nawigacji dodano gest - ios, goal-c, pasek nawigacji, uibarbuttonitem, ios11

Problem z systemem iOS 11 - akcja przycisku paska nie uruchamia się, jeśli gest został dodany do paska nawigacji - ios, cel-c, uinavigationbar, uibarbuttonitem, ios11

Działa to doskonale na iOS 10. Ale nie działa na iOS 11. showFlyoutMenu nie rozpala się.

gestureLeftArrow = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(leftArrowGesture:)];
[self.navigationController.navigationBar addGestureRecognizer:gestureLeftArrow];

gestureRightArrow = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(rightArrowGesture:)];
[self.navigationController.navigationBar addGestureRecognizer:gestureRightArrow];


UIImage *image = [[UIImage imageNamed:@"hamburger-new.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *flyoutButton = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(showFlyoutMenu)];
self.navigationItem.rightBarButtonItem = flyoutButton;

Odpowiedzi:

2 dla odpowiedzi № 1

Powinieneś ustawić cancelsTouchesInView twoich rozpoznawaczy gestów na false.
Widzieć: AnulujeTouchesInView

Dyskusja
Gdy ta właściwość ma wartość true (domyślna) iodbiorca rozpoznaje swój gest, dotknięcia tego gestu, które są w toku, nie są dostarczane do widoku, a wcześniej dostarczone poprawki są anulowane poprzez dotknięcie Anulowano (_: z :) wiadomość wysłaną do widoku. Jeśli moduł rozpoznawania gestów nie rozpoznaje swojego gestu lub jeśli wartość tej właściwości jest fałszywa, widok odbiera wszystkie dotknięcia w sekwencji wielodotykowej.