2012-01-05 2 views
0

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

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

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

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

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

ответ

0

Я думаю, вы не можете использовать один набор кода для 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]]]; 
... 
} 
+0

Спасибо за ответ. У меня была такая же мысль. Мне было любопытно посмотреть, как другие решили проблему. – user1132486

Смежные вопросы