Нужно ли несколько контроллеров для одного представления с различными типами элементов управления? - PullRequest
0 голосов
/ 04 июня 2009

Если у меня есть представление с несколькими кнопками, таблицей и некоторыми другими элементами управления, нужен ли мне контроллер для каждого типа (кнопка, таблица и т. Д.) Или у меня должен быть один контроллер для представления, который обрабатывает все необходимые действия? Не похоже, что один контроллер возможен, так как им, возможно, придется наследовать от разных родительских классов. Какой метод самый лучший?

Ответы [ 2 ]

1 голос
/ 04 июня 2009

Отличный ответ, неван. Кроме того, API-интерфейсы Cocoa (Touch) активно используют делегатов. Это позволяет вам использовать один контроллер для нескольких вещей без необходимости создавать подклассы. Контроллер тогда является делегатом для нескольких компонентов (таких как UITableView).

1 голос
/ 04 июня 2009

Вы можете использовать один контроллер для всех этих. Поместите все свои действия в контроллер и подключите кнопки, объявив IBActions и связав их в Интерфейсном Разработчике. Первые несколько глав Аарона Хиллегаса (Aaron Hillegass) по программированию какао для Mac OS X объясняют это очень хорошо.

Если у вас есть UITableView, вы должны не забыть установить UITableViewDelegate и убедиться, что вы реализуете необходимые ему методы:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

Для остальных, установите IBOutlets в вашем контроллере и подключите их в Интерфейсном Разработчике. В зависимости от используемых элементов управления вам могут потребоваться другие делегаты (например, делегат текстового поля).

...