【问题标题】:Do I need multiple controllers for a single view with different types of controls?对于具有不同类型控件的单个视图,我是否需要多个控制器?
【发布时间】:2009-06-04 06:26:50
【问题描述】:

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

【问题讨论】:

    标签: iphone controller views


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      反应很好,内文。此外,Cocoa (Touch) API 大量使用了委托。这使您可以将单个控制器用于多个事物,而无需对所有事物进行子类化。然后,控制器是多个组件(例如 UITableView)的委托。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-08
        • 1970-01-01
        • 1970-01-01
        • 2014-12-06
        • 1970-01-01
        相关资源
        最近更新 更多