防止出现第二个模态视图?

时间:2014-05-06 01:59:38

标签: ios objective-c modalviewcontroller

我查看具有用户可以与之交互的不同按钮的控制器。每个人都做了不同的事情,但他们都以模态方式呈现了一个新的视图控制器。问题是用户有时间在第一次演示发生之前点击另一个按钮,这会导致崩溃。有没有办法阻止用户点击另一个按钮或检测模态演示是否已经发生?

我只是不想让用户一次出现超过1个模态视图控制器。

2 个答案:

答案 0 :(得分:0)

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{

if ([[segue identifier] isEqualToString:@"whateverSegue"])
    {
    [button setEnabled:NO];
    }
}

如果它只需要一次就可以做到这一点 - 否则一个名为disableButtons的辅助方法或者如果它在几个地方应该可以调用的话就可以调用它!

答案 1 :(得分:0)

检查以下步骤是否有用。

单击按钮后,您可以禁用视图的用户交互。

-(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://stackoverflow.com/a/16609327/1208276