防止出现第二个模态视图?
Posted
技术标签:
【中文标题】防止出现第二个模态视图?【英文标题】:Prevent a second modal view from appearing? 【发布时间】:2014-05-06 01:59:37 【问题描述】:我查看的控制器具有用户可以与之交互的不同按钮。每个人都做了不同的事情,但他们都以模态方式呈现了一个新的视图控制器。问题是用户有时间在第一次演示发生之前点击另一个按钮,这会导致崩溃。有没有办法阻止用户点击另一个按钮或检测模态演示是否已经发生?
我只是不想让用户一次呈现超过 1 个模态视图控制器。
【问题讨论】:
您可以在没有动画的情况下显示模态视图控制器。或者在显示另一个视图控制器时禁用其他按钮。这行得通吗? 我绝对需要让演示文稿变成动画。也可以禁用按钮,但其中一些不需要。你认为我应该手动禁用我不想触及演示可能性的按钮吗? 当你点击按钮呈现设置所有按钮启用NO。然后在从类中展示 NewViewController 之后,调用委托以启用主视图控制器中的所有按钮。 【参考方案1】:- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
if ([[segue identifier] isEqualToString:@"whateverSegue"])
[button setEnabled:NO];
如果它只有一次,这应该可以解决问题 - 否则一个名为 disableButtons 的辅助方法或调用的东西如果它在几个地方应该可以解决问题!
【讨论】:
【参考方案2】:检查以下步骤是否有帮助。
单击按钮后,您可以禁用视图的用户交互。
-(IBAction)clickedButton:(id)sender
[self.view setUserInteractionEnabled:NO];
// Do other things here
当模型视图控制器出现时,启用视图的用户交互。
[self presentViewController:aViewController animated:YES completion:^
[self.view setUserInteractionEnabled:NO];
];
或者,您可以尝试以下方法来禁用应用程序中的触摸
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
https://***.com/a/16609327/1208276
【讨论】:
以上是关于防止出现第二个模态视图?的主要内容,如果未能解决你的问题,请参考以下文章