我需要阻止界面,直到MBProgressHUD
操作完成。我确实引用了这个帖子,
Block interface until operation is done
根据它,我们应该禁用每个不适合我的项目。我的情况是我需要禁止用户点击后退按钮。我确实尝试HUD.userInteractionEnabled = YES
禁用除后退按钮以外的每个控制器。有没有办法阻止用户从该控制器弹出?
的问候,
Dilshan
答案 0 :(得分:11)
如果你找不到合适的方法,你可以忽略整个用户的互动
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
.U可以通过
来阻止它[[UIApplication sharedApplication] endIgnoringInteractionEvents];
答案 1 :(得分:11)
您可以将MBProgressHUD添加到导航控制器的视图中,这样它也可以阻止与后退按钮的交互:
[MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];
答案 2 :(得分: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];
}
答案 3 :(得分: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的视图控制器