В моем проекте каждое из событий взаимодействия с пользователем создает сетевой вызов (который является TCP, а не HTTP). Мне нужно, чтобы индикатор активности был глобальным до показывать из случайного UIViewController
и скрывать из NetworkActivityManager
класса (пользовательский класс для обработки сетевых действий, который не является подклассом UIViewController или UIView).
После поиска в Интернете я обнаружил, что MBProgressHUD используется для этой же цели, но я не смог найти пример того, как использовать его во всем мире. (Говоря глобальным, я имею в виду одноэлементный объект MBProgressHUD и методы класса для SHOW и HIDE.)
Вот что я пробовал еще, но, не удалось: В 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 в своем проекте, а также, я использую версию ARC MBProgressHUD.
Я что-то пропустил?
Важный вопрос:
Могу ли я сделать работу MBProgressHUD, например, UIAlertView? (Говоря, что я имею в виду реализацию MBProgressHUD, не зависящей от UIView - sa, она использует showHUDAddedTo:
для представления себя).
Обратите внимание: в приведенном выше коде скрытия MBProgressHUD View может быть изменен с того, что было при показе MBProgressHUD.
Любая помощь была высоко оценена.