在我的项目中,每个用户交互事件都会进行一次网络调用(这是 TCP,而不是 HTTP)。我需要 Activity Indicator 是全局的,以便随机显示UIViewController
并 隐藏Class(处理网络活动的自NetworkActivityManager
定义类,它不是 UIViewController 或 UIView 的子类)。
在网上搜索后,我发现MBProgressHUD用于相同目的,但我无法找到有关如何在全球范围内使用它的示例。(通过说全局,我的意思是MBProgressHUD的单例对象和显示和隐藏它的类方法。)
以下是我尝试过的,但是失败了:在AppDelegate.h 中:
@property (nonatomic, retain) MBProgressHUD *hud;
在AppDelegate.m 中:
@synthesize hud;
在一些随机的 UIViewController 对象中:
appDelegate.hud = [MBProgressHUD showHUDAddedTo:appDelegate.navigationController.topViewController.view animated:YES];
appDelegate.hud.labelText = @"This will take some time.";
在隐藏它的同时,从NetworkActivityManager
类:
[MBProgressHUD hideHUDForView:appDelegate.navigationController.topViewController.view animated:YES];
这会使项目在一段时间后崩溃(由于内存问题。)我在我的项目中使用 ARC,而且,我正在使用MBProgressHUD的 ARC 版本。
我错过了什么吗?
重要问题:
我可以让MBProgressHUD像 UIAlertView 一样工作吗?(说我的意思是独立于 UIView 的MBProgressHUD的实现——它showHUDAddedTo:
用来展示自己的 sa)???
请注意:在上述隐藏 MBProgressHUD 的代码中,显示 MBProgressHUD 时的 View 可能会发生变化。
非常感谢任何帮助。