我有一个处理Web服务请求的类。当这开始从服务中获取信息时,我创建并在另一个类视图上添加HUD。像这样,
HUD = [[MBProgressHUD showHUDAddedTo:viewController.view animated:YES] retain];
加载完成后我打电话给,
[HUD hideHUDForView:viewController.view animated:YES];
我将委托设置为self,
HUD.delegate = self;
但是我无法从视图中删除它。
- (void)hudWasHidden {
// Remove HUD from screen when the HUD was hidded
[HUD removeFromSuperview];
[HUD release];
HUD = nil;
}
我想从一个类开始在另一个类中显示,而第一个类是从webservice获取数据。然后将我从第一堂课中隐藏起来。
有什么想法吗?
编辑:
现在我可以将第一个类中的委托设置为:
HUD.delegate = viewController;
但是我应该放在哪里:
- (void)hudWasHidden {
// Remove HUD from screen when the HUD was hidded
[HUD removeFromSuperview];
[HUD release];
HUD = nil;
}
答案 0 :(得分:1)
您可以通过将HUD的委托设置为其他类来完成此操作。
例如,如果我在A类中添加HUD并想要从B类中删除它,那么我必须将HUD的委托设置为B类。
答案 1 :(得分:0)
您可以在第一次通话时使用完成功能块,并在从网络服务获得答案后继续工作,以隐藏块中的HUD。
长篇大论:
[self callServiceWithBlock:^(NSError *error){
//Your service has answered, you can now hide the HUD
[hud HIDE:YES];
if (error){
NSLog(@"Error : %@");
}
}];