2009-07-12 38 views
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"); 
} 

我在想的是,如果有一个功能可以让我检测帮助视图是否显示,那么我将在设备震动时不返回声音而返回....

任何想法?

回答

2

我假设加载模式控制器的视图控制器也是响应摇动操作的视图控制器。完美

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]; 
}
+0

方式:如果是这样的话,那么你可以使用父视图控制器的modalViewController属性看,模态控制器是否处于活动状态!谢谢! – 2009-07-12 14:56:51