1

これは楽しいものです...ヘルプ画面があり、モーダル ビューとして表示されるアプリケーションがあります。メインビューには、デバイスを振ると発生するアクションがあります。ヘルプ画面が表示されたときに、アクションが発生する (サウンドが再生される) ようにしたくありません。

私はいくつかのことを試しました...これが私のコードです:

ヘルプ画面を表示するには:

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

ヘルプ画面を解除するには:

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

次のことを試しましたが、成功しませんでした:

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

考えていたのは、ヘルプビューが表示されているかどうかを検知できる機能があれば、デバイスを振ったときに音を鳴らさずに戻るのではないかと思うのですが....

何か案は?

4

1 に答える 1

2

モーダルコントローラーをロードするビューコントローラーは、シェイクアクションに応答するビューコントローラーでもあると想定しています。その場合は、親ビュー コントローラーのmodalViewControllerプロパティを使用して、モーダル コントローラーがアクティブかどうかを確認できます。

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];
}
于 2009-07-12T14:44:02.907 に答える