Какой контроллер для получения данных для UITableViews в приложении IPhone? - PullRequest
1 голос
/ 03 февраля 2010

У меня есть CustomersViewController с табличным представлением клиентов. Нажмите на клиента (didSelectRowAtIndexPath), и OrdersViewController показывает табличное представление заказов для этого клиента. У меня есть тестовые данные в NSArray для тестирования на данный момент. Однако в какой-то момент мне нужно позвонить в веб-сервис, чтобы получить данные заказа. В каком контроллере уместно совершить звонок в веб-сервис? В didSelectRowAtIndexPath для CustomersViewController или в viewWillAppear для OrdersViewController? Любые лучшие практики и советы очень ценятся. Спасибо.

1 Ответ

1 голос
/ 03 февраля 2010

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

Так что CustomersViewController звучит так, как будто обрабатывает все о клиентах, а OrdersViewController звучит так, как будто все обрабатывает заказы.

Таким образом, OrdersViewController должен обрабатывать выборку заказов

  1. CustomersViewController выбирает клиентов
  2. CustomersViewController отображает клиентов
  3. Пользователь нажимает на клиента
  4. OrdersViewController создается с объектом клиента или идентификатором клиента, переданным ему во время инициализации
  5. OrdersViewController запускает запрос и отображает индикатор загрузки
  6. OrdersViewController выполняет действие после завершения запроса, перезагружая таблицу и скрывая индикатор загрузки
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...