Использование 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.

Любая помощь с благодарностью.

Ответы на вопрос(9)

Ваш ответ на вопрос