代码之家  ›  专栏  ›  技术社区  ›  Tai Squared

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

  •  0
  • Tai Squared  · 技术社区  · 15 年前

    如果我有一个视图有几个按钮、一个表和其他一些控件,我需要为每种类型(按钮、表等)使用一个控制器,还是应该为每个视图使用一个控制器来处理所有必要的操作?似乎不可能只有一个控制器,因为它们可能必须从不同的父类继承。最好的方法是什么?

    2 回复  |  直到 15 年前
        1
  •  1
  •   nevan king    15 年前

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

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

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

    对于其他的,在控制器中设置iboutlets,并将它们连接到InterfaceBuilder中。根据所使用的控件,您可能需要其他委托(例如文本字段委托)。

        2
  •  1
  •   Chris Eidhof    15 年前

    反应很好,内万。此外,Cocoa(Touch)API大量使用代理。这使您可以将单个控制器用于多个对象,而不必对所有对象进行子类化。然后,控制器是多个组件(如UITableView)的委托。