Тот факт, что оба контроллера представления захотят один и тот же запрос, указывает на ошибку проектирования.Контроллеры представления должны отображать текущее состояние Модели.Они не должны напрямую обрабатывать активные сетевые запросы.
У вас должна быть группа классов, представляющая ваши данные.Это называется Модель.Контроллеры представления должны заботиться только о модели, пока представление находится на экране.Таким образом, разумный шаблон выглядит следующим образом:
- ViewController регистрирует уведомления об изменениях в модели
- ViewController обновляет представление с текущими данными из модели.
- ViewController запрашиваетupdate.
- RequestManager (singleton) создает новый RequestHandler для его обработки.
- По завершении RequestHandler сообщает RequestManager и освобождается.
- RequestManager обновляет модель новыми данными
- Модель предупреждает зарегистрированных наблюдателей, что она изменилась.
- ViewController обновляет представление с текущими данными из модели.
Теперь не имеет значения, находится ли пользователь на этомили переместился к другому, или перешел к другому и вернулся.В случаях вызовов при каждом изменении модели текущее представление обновляется.