6

我需要阻塞接口,直到MBProgressHUD操作完成。我确实参考了这个线程,

阻塞接口直到操作完成

根据它,我们应该禁用对我不起作用的每个单独的项目。我的情况是我需要禁止用户点击后退按钮。我确实尝试HUD.userInteractionEnabled = YES过禁用除后退按钮之外的每个控制器。有没有办法阻止用户从该控制器中弹出?

问候,
迪尔山

4

4 回答 4

11

如果你没有找到合适的方法来做到这一点,你可以忽略整个用户交互

[[UIApplication sharedApplication] beginIgnoringInteractionEvents];

.U 可以通过

[[UIApplication sharedApplication] endIgnoringInteractionEvents];
于 2012-07-16T12:30:38.620 回答
11

您可以将 MBProgressHUD 添加到导航控制器的视图中,这样它还可以防止与后退按钮的交互:

[MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];
于 2012-08-03T18:47:54.290 回答
4

如果您希望在显示 HUD 时启用特定控件,您可以简单地[self.view bringSubviewToFront:yourControl]; 在您的showHUD方法中添加该行作为

-(void) showHUD:(UIView *)view
{

    if (self.HUDdisplayed == NO)
    {
        self.HUDdisplayed = YES;
        HUD = [[MBProgressHUD showHUDAddedTo:self.view animated:YES] retain];
    }
//    HUD.delegate = self;
    [self.view bringSubviewToFront:HUD];
     [self.view bringSubviewToFront:yourControl];

}
于 2012-12-12T12:54:11.030 回答
0

这就是我将它添加MBProgressHUD到我的视图中的方式,它会阻止所有输入,直到它被删除:

MBProgressHUD HUD = [[MBProgressHUD alloc] initWithView:self.view];
HUD.opacity = 0.7f;

[self.view addSubview:HUD];

HUD.delegate = self;
[HUD show:YES];

注意: self是添加 HUD 的视图控制器吗

于 2012-07-16T12:12:57.973 回答