0

我有一个 splitview 控制器,我想在详细视图中管理多个表(使用这个可可控件,每个部分一个表)。我应该使用 4 个特定的视图控制器还是只使用一个控制子视图的控制器?

4

2 回答 2

1

根据文档:

一个 UITableView 对象必须有一个充当数据源的对象和一个充当委托的对象;通常,这些对象要么是应用程序委托,要么是更常见的自定义 UITableViewController 对象。数据源必须采用 UITableViewDataSource 协议,委托必须采用 UITableViewDelegate 协议。数据源提供 UITableView 构建表所需的信息,并在插入、删除或重新排序表的行时管理数据模型。委托提供表格使用的单元格并执行其他任务,例如管理附件视图和选择。

我建议使用四个不同的 UIViewController, 与单个 UIViewController 中的所有内容相比,它们将模块化您的代码并且易于管理。

于 2013-03-03T18:24:59.867 回答
0

您可以在单个基本视图中使用表视图的数量,但您需要使用一些标签来处理它……比如标签值(任何整数值)或按名称。我认为您需要使用标签进行管理,这将如下所示:

  • (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

if (tableView.tag == ) { 返回值; }

}

  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

if (tableView.tag == ) { 返回值; }

}

  • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    if (tableView.tag == ) { <#statements#> } 静态 NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    // 配置单元格...

    返回单元格;}

但在这种情况下,您需要温和地处理整个情况。并且始终关心不要在 cellForRowAtIndexPath 中编写大型语句,另一个明智的做法是在加载时初始化该单元格需要很多时间。

于 2013-03-03T18:58:24.393 回答