【问题标题】:Detecting when modal view has been displayed检测模态视图何时显示
【发布时间】:2009-07-12 14:33:36
【问题描述】:

这很有趣...我有一个应用程序,它有一个帮助屏幕并显示为模式视图。主视图有一个动作,当设备摇晃时发生。我不希望在显示帮助屏幕时发生该操作(播放声音)。

我已经尝试了一些事情......这是我的代码:

显示帮助屏幕:

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

我的想法是如果有一个功能可以让我检测是否显示帮助视图,我会在设备摇晃时返回而不播放声音....

有什么想法吗?

【问题讨论】:

    标签: iphone cocoa-touch shake motion-detection


    【解决方案1】:

    我假设加载模态控制器的视图控制器也是响应摇动动作的视图控制器。如果是这种情况,那么您可以使用父视图控制器的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];
    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多