Ho un UIViewController nella mia app TVOS che apparirà solo per pochi secondi e richiede la gestione del pulsante MENU totalmente personalizzabile. Creo in questo modo:tvOS - cattura il pulsante MENU durante la transizione del controller push-view
- (void)viewDidLoad
{
[super viewDidLoad];
// Add a tap gesture recognizer to handle MENU presses.
UITapGestureRecognizer *tapGestureRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
tapGestureRec.allowedPressTypes = @[@(UIPressTypeMenu)];
[self.view addGestureRecognizer:tapGestureRec];
}
- (void)handleTap:(UITapGestureRecognizer *)sender
{
// Code to process the MENU button is here.
}
ho visualizzare il controller della vista utilizzando pushViewController:animated:
:
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:identifier];
[self pushViewController:controller animated:isAnimated];
Ho scoperto che se l'utente preme MENU non appena lo schermo comincia ad apparire, mentre la croce - l'effetto di transizione di dissolvenza continua a essere visualizzato, sono in grado di schivare UITapGestureRecognizer e tornare a una schermata precedente, che non è destinata. Possono anche causare problemi schiacciando MENU ripetutamente - alla fine evaderanno da cose che non dovrebbero essere in grado di fare.
Come posso garantire che la pressione del MENU raggiunga sempre il mio override? C'è un modo per specificare un gestore di pulsanti MENU che comprende app e utilizzare ancora un UINavigationController?