我需要阻塞接口,直到MBProgressHUD
操作完成。我确实参考了这个线程,
根据它,我们应该禁用对我不起作用的每个单独的项目。我的情况是我需要禁止用户点击后退按钮。我确实尝试HUD.userInteractionEnabled = YES
过禁用除后退按钮之外的每个控制器。有没有办法阻止用户从该控制器中弹出?
问候,
迪尔山
我需要阻塞接口,直到MBProgressHUD
操作完成。我确实参考了这个线程,
根据它,我们应该禁用对我不起作用的每个单独的项目。我的情况是我需要禁止用户点击后退按钮。我确实尝试HUD.userInteractionEnabled = YES
过禁用除后退按钮之外的每个控制器。有没有办法阻止用户从该控制器中弹出?
问候,
迪尔山
如果你没有找到合适的方法来做到这一点,你可以忽略整个用户交互
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
.U 可以通过
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
您可以将 MBProgressHUD 添加到导航控制器的视图中,这样它还可以防止与后退按钮的交互:
[MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];
如果您希望在显示 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];
}
这就是我将它添加MBProgressHUD
到我的视图中的方式,它会阻止所有输入,直到它被删除:
MBProgressHUD HUD = [[MBProgressHUD alloc] initWithView:self.view];
HUD.opacity = 0.7f;
[self.view addSubview:HUD];
HUD.delegate = self;
[HUD show:YES];
注意: self
是添加 HUD 的视图控制器吗