Na systéme iOS 10 to fungovalo dokonale. Ale na systéme iOS 11 to nefunguje. showFlyoutMenu
nespúšťa sa.
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;
odpovede:
2 pre odpoveď č. 1Mali by ste nastaviť cancelsTouchesInView
vašich rozpoznávačov gesta false
.
pozri: cancelsTouchesInView
diskusia
Ak je táto vlastnosť pravdivá (predvolená) aPrijímač rozpozná svoje gesto, dotyky tohto gesta, ktoré čakajú, sa do zobrazenia nedoručia, a predtým doručené dotyky sa zrušia prostredníctvom správy dotykom Zanechané správy (_: with :) odoslané do zobrazenia. Ak rozpoznávač gest nerozpozná jeho gesto, alebo ak je hodnota tejto vlastnosti nepravdivá, zobrazenie prijme všetky dotyky v mnohov dotykovej postupnosti.