2009-07-12 65 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