У меня есть модель, которая может загружать данные с сервера, и поэтому индикатор активности должен отображаться (как в строке состояния, так и на экране).Какой класс должен отвечать за указания активности, когда и модель, и контроллер должны отображать его?
Но у меня также есть UIWebView, который отображает контент, контент имеет ссылки, некоторые из них являются локальными, а некоторые удалены, если необходимо загрузить удаленную ссылку, тогда индикатор активности нужно снова отобразить.
Каковы варианты дизайна для этого?
Делегат приложения может иметь методы для запуска и остановки индикаторов активности, как указано в моделях и контроллерах. Но почему-то это не кажется мне совершенно чистым - его начало использовать делегат приложения так же, как ведро для сброса разной функциональности.
Я думаю, что модель должна иметь дело с собственным индикатором активности, а контроллеры должны иметь дело со своими собственными, т. Е. Разделять их. Однако если бы я сделал это, мы бы тогда не имели ситуацию, когда модель делает некоторые связанные с UI вещи (даже если они минимальны)?
Есть ли чистое рекомендуемое решение?
При проектировании вашей модели никогда не требуется доступ к пользовательскому интерфейсу. – Till
ОП имеет хорошую точку. Является ли установка BOOL на экземпляре 'UIApplication' действительно рассматриваемой прямой манипуляцией с пользовательским интерфейсом? Это объект приложения, который обрабатывает пользовательский интерфейс строки состояния ... –