检测模态视图何时显示
Posted
技术标签:
【中文标题】检测模态视图何时显示【英文标题】: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");
我的想法是如果有一个功能可以让我检测是否显示帮助视图,我会在设备摇晃时返回而不播放声音....
有什么想法吗?
【问题讨论】:
【参考方案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];
【讨论】:
以上是关于检测模态视图何时显示的主要内容,如果未能解决你的问题,请参考以下文章
从 didFinishLaunchingWithOptions 呈现模态视图