Как наилучшим образом спроектировать мои детализированные списки контроллеров? - PullRequest
0 голосов
/ 05 января 2012

Мое приложение имеет список клиентов в виде таблицы.Когда вы щелкаете по клиенту, он переводит вас в детализированный контроллер представления с использованием стандартного контроллера навигации.

Контроллер представления списка позволяет пользователю провести пальцем, чтобы удалить клиента.Контроллер детального просмотра имеет кнопку для удаления клиента.

При удалении клиента я хочу представить лист действий с несколькими вариантами выбора.

ВОПРОС: Я не хочу дублироватькод в обоих моих контроллерах представления для представления листа действий и обработки результатов листа действий.Поскольку оба контроллера представления удаляют клиента, код идентичен в обоих случаях.Существует ли шаблон проектирования, который считается наилучшим в данном случае?

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 05 января 2012

Полагаю, вы не можете использовать один набор кода для UIActionSheet в обоих viewControllers.Но для очень похожей ситуации мой подход был следующим.Надеюсь, это поможет.

  1. Я создаю свой собственный класс, например, MySortingClass (в моем случае это были варианты сортировки, например, дата по возрастанию / убыванию, имя по возрастанию / убыванию).Этот класс является подклассом NSObject.

  2. В моем пользовательском классе я объявляю различные методы, которые будут возвращать, например, массив заголовков опций для отображения пользователю, массив NSSortDescriptorsи т. д.

  3. В любом из моих viewControllers, в которых мне нужно представить пользователю список параметров сортировки, я бы импортировал MySortingClass, alloc, init и получил массив параметров, показалих через actionSheet, и отправьте ответ в виде индекса в MySortingClass и получите соответствующий NSSortDescriptor обратно и выполните повторную сортировку.

...
// In MySortingClass
- (NSArray *)arrayOfOptions;
- (NSSortDescriptor *)sortDescriptorForSortingOptionIndex:(NSInteger)index;
...
...
// In a ViewController
MySortingClass *msc = [MySortingClass alloc] init];
...
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
...
[anArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:[msc sortDescriptorForSortingOptionIndex:buttonIndex]]];
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...