对于具有不同类型控件的单个视图,我是否需要多个控制器?

时间:2009-06-04 06:26:50

标签: iphone controller views

如果我有一个包含多个按钮,一个表和一些其他控件的视图,我是否需要为每种类型(按钮,表格等)设置一个控制器,或者每个视图是否应该有一个控制器来处理所有必要的操作行动?它似乎不可能是单个控制器,因为它们可能必须从不同的父类继承。什么是最好的方法?

2 个答案:

答案 0 :(得分:1)

您可以为所有这些使用一个控制器。将所有操作放入控制器并通过声明IBActions并在Interface Builder中链接它们来连接按钮。 Aaron Hillegass的Mac OS X可可编程的前几章很好地解释了这一点。

如果您有UITableView,则必须记住设置UITableViewDelegate并确保实现所需的方法:

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

对于其他人,在控制器中设置IBOutlets并在Interface Builder中将它们连接起来。根据您正在使用的控件,您可能需要其他代理(例如文本字段委托)。

答案 1 :(得分:1)

极好的回应,nevan。此外,Cocoa(Touch)API大量使用代理。这使您可以将单个控制器用于多个事物,而无需将所有内容子类化。然后控制器是几个组件的代理(例如UITableView)。