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 回答