Domanda

Questo è un divertimento uno ... Ho una domanda che ha una schermata di aiuto e viene visualizzata come una vista modale. La vista principale ha un'azione che si verifica quando il dispositivo viene scossa. Non voglio l'azione a verificarsi (i suoni vengono riprodotti) quando viene visualizzata la schermata di aiuto.

Ho provato un paio di cose ... qui è il mio codice:

Per visualizzare la schermata di aiuto:

- (IBAction)helpButtonPressed:(id) sender {
    helpViewController = [[HelpViewController alloc] init]; 
    [self presentModalViewController:helpViewController animated:YES];
}

Per sbloccare la schermata di aiuto:

- (IBAction)buttonPressed:(id) sender {
    [self dismissModalViewControllerAnimated:YES];
}

Ho provato quanto segue senza successo:

if ([helpViewController.view isHidden ]) {
    NSLog(@"Shake -- helpView is loaded");
} else {
    NSLog(@"Shake -- helpView is not loaded");
}


if ([helpViewController isViewLoaded]) {
    NSLog(@"Shake -- helpView is loaded");
} else {
    NSLog(@"Shake -- helpView is not loaded");
}

if ([self isViewLoaded]) {
    NSLog(@"Shake -- helpView is loaded");
} else {
    NSLog(@"Shake -- helpView is not loaded");
}

Quello che stavo pensando è che se c'è una funzione per permettere a me di rilevare se la vista di aiuto sta mostrando, tornerò senza giocare i suoni quando il dispositivo viene scosso ....

Tutte le idee?

È stato utile?

Soluzione

Sto assumendo che il controller della vista che carica il controller modale è anche il controller della vista che risponde all'azione scossa. Se questo è il caso, quindi è possibile utilizzare la proprietà modalViewController del controller vista padre per vedere se il controller modale è attiva:

if(self.modalViewController != nil) {
    // Modal view controller is active; do nothing
    NSLog(@"Shake -- helpView is loaded");
    return;
} else {
    // No modal view controller; take action
    NSLog(@"Shake -- helpView is not loaded");
    [self performSomeAction];
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top