UIActivityIndicator без класса UIView

У меня есть класс только для извлечения данных из URL-адреса. Это не класс UIview. Я хочу показать индикатор активности при загрузке данных.

Итак, как я могу добавить его в представление приложения? Конечно, [self.view addSubview... не тот способ...

Спасибо!


person Wagner Vieira    schedule 27.12.2011    source источник


Ответы (2)


Объект вашей модели не должен отображать какой-либо пользовательский интерфейс. Работа контроллера заключается в том, чтобы быть посредником между данными и представлениями вашего приложения.

Например, ваш контроллер может иметь метод, который запускает ваш класс данных и извлекает некоторые данные. Здесь он также будет отображать индикатор активности. Когда ваш класс завершит передачу данных, контроллер удалит счетчик с экрана. Это позволяет повторно использовать компоненты вашего приложения. Особенно модельные объекты.

person Mark Adams    schedule 27.12.2011
comment
Ты прав!!! Но как сэкономить время и код? Мне приходится вставлять один и тот же код во многие места моего приложения! - person Wagner Vieira; 28.12.2011
comment
хм... У меня есть tabBarController и несколько UIViewController на нем. Лучшее место для размещения этого кода — rootViewController? - person Wagner Vieira; 28.12.2011
comment
Я говорю, что лучшее место для размещения счетчика на экране — это когда вы используете объект данных в одном из ваших контроллеров представления. - person Mark Adams; 28.12.2011

Вам нужно получить доступ к свойству окна из вашего делегата приложения

[[(YourAppDelegate *)[[UIApplication sharedAplication] delegate] window] addSubview:yourActivityIndicator];

Не забудьте:

#import "YourAppDelegate.h"
person Ecarrion    schedule 27.12.2011
comment
Но то, что говорит Марк Адамс, совершенно верно! но вы знаете... шаблоны == философии == способы увидеть мир - person Ecarrion; 28.12.2011