在一个视图上使用不同数据填充多个表的最佳方法是啥? [关闭]
Posted
技术标签:
【中文标题】在一个视图上使用不同数据填充多个表的最佳方法是啥? [关闭]【英文标题】:what is the BEST way to populate several tables with different data on one view? [closed]在一个视图上使用不同数据填充多个表的最佳方法是什么? [关闭] 【发布时间】:2013-09-13 12:12:17 【问题描述】:我正在构建一个 iPad 应用。我想让其中一个视图 (xib) 显示几个表,在运行时将不同的数据填充到每个表中,即,当视图加载时,我想为每个表运行查询并将查询结果作为行返回到相关表格。所以对于tableA,我会运行queryA并返回datasetA、tableB、queryB、datasetB等等。我怎样才能做到这一点?你能给出示例代码吗?我还希望能够与表格进行交互,例如,选择一行并将信息传递到另一个屏幕。
【问题讨论】:
【参考方案1】:比 BalaChandra 的答案更简单的方法(它是正确的):
我想你的 UITableViews 是实例变量(甚至是属性)。因此,如果您已经实例化了您的表视图,例如:
UITableView *tableViewA = [[UITableView alloc] init...];
UITableView *tableViewB = [[UITableView alloc] init...];
例如,您不需要将标签设置为表格视图。 在 UITableViewDelegate/UITableViewDataSource 方法中,您可以检查哪个 tableView 是这样的:
if (tableView == tableViewA)
// Do something with tableA...
else if (tableView == tableViewB)
// Do something with tableB...
...
【讨论】:
【参考方案2】:只需创建四个表并将它们放在视图上,将 tableview 委托和数据源设置为 self。给每个表一个特定的标签。在数据源或委托方法中,在执行操作之前检查该特定表视图的标签并运行与其相关的查询。 例如:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
// The header for the section is the region name -- get this from the region at the section index.
if (tableView.tag ==12)
return @"comments:";
else
return sectiontitle;
其中一个表的tag=12,如果tag为12,则执行与该表相关的操作,否则执行与其他表相关的操作。
【讨论】:
好的,我会试试的,听起来合乎逻辑。这是将委托和数据源设置为 self 的正确方法(从保存表的 ViewController 实现文件中吗?)'mytable = [[UITableView alloc] init]; [mytable setDelegate:self]; [mytable setDataSource.self];' 可以直接赋值 mytable.datasoucre = self;为什么要为这一切烦恼 感谢 BalaChandra,您能扩展您的评论吗? 您指定的方法也是正确的,我只是说创建表之后。您可以使用 setter 直接分配数据源和委托。 mytable.datasource = self 和 mytable.delegate = self.确保在头文件中实现它们 嗨@BalaChandra,你能给我指点关于如何遵循你的建议的更详细说明吗?以上是关于在一个视图上使用不同数据填充多个表的最佳方法是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章