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 № 1Powinieneś 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.