Использование MBProgressHUD в глобальном масштабе + сделать его синглтон
В моем проекте каждое из событий взаимодействия с пользователем выполняет сетевой вызов (который является TCP, а не HTTP). Мне нужен индикатор активности, чтобы быть глобальным дляshow от случайногоUIViewController
а такжеhide от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 в своем проекте, а также, я использую версию ARCMBProgressHUD.
Я что-то пропустил?
Important Question:
Могу я сделатьMBProgressHUD работать как UIAlertView? (Сказать, что я имею в виду реализациюMBProgressHUD не зависит от UIView - Sa он используетshowHUDAddedTo:
представить себя) ???
Обратите внимание: в приведенном выше коде скрытия MBProgressHUD представление может быть изменено по сравнению с тем, что было при отображении MBProgressHUD.
Любая помощь с благодарностью.