Frage

Dies ist eine lustige ... Ich habe eine Anwendung, die einen Hilfebildschirm hat und als modale Ansicht angezeigt wird. Die Hauptansicht hat eine Aktion, die auftritt, wenn das Gerät geschüttelt wird. Ich möchte nicht, dass die Aktion auftritt (Geräusche werden gespielt), wenn der Hilfebildschirm angezeigt wurde.

Ich habe ein paar Dinge ausprobiert ... hier ist mein Code:

So zeigen Sie den Hilfebildschirm an:

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

So veröffentlichen Sie den Hilfebildschirm:

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

Ich habe das Folgende ohne Erfolg ausprobiert:

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");
}

Was ich dachte, ist, wenn es eine Funktion gibt, mit der ich erkennen kann, ob die Hilfeansicht angezeigt wird, werde ich zurückkehren, ohne die Geräusche zu spielen, wenn das Gerät geschüttelt wird ....

Irgendwelche Ideen?

War es hilfreich?

Lösung

Ich gehe davon aus, dass der Ansichtsregler, der den Modal Controller lädt, auch der Ansichtsregler ist, der auf die Shake -Aktion reagiert. Wenn dies der Fall ist, können Sie den übergeordneten Ansichtsregler verwenden modalViewController Eigenschaft, um festzustellen, ob der Modal Controller aktiv ist:

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];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top