2009-06-04 2 views
0

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

ответ

1

Вы можете использовать один контроллер для всех этих устройств. Поместите все свои действия в контроллер и подключите кнопки, объявив IBActions и связав их в Interface Builder. Первые несколько глав программирования Cocoa для Mac OS X от Aaron Hillegass объясняют это очень хорошо.

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

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

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

1

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

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