一个XIB中是不是可以有两个表视图?

Posted

技术标签:

【中文标题】一个XIB中是不是可以有两个表视图?【英文标题】:Is it possible to have two Table Views in one XIB?一个XIB中是否可以有两个表视图? 【发布时间】:2011-07-01 07:31:41 【问题描述】:

我需要在一个 XIB 文件中有两个表视图,有什么办法吗?

【问题讨论】:

如果您愿意,可以在一个 xib 中拥有 150 个表视图。只需继续在 Interface Builder 中添加它们,它就可以正常工作。您必须更具体地回答您的问题:您想在一个 xib 中使用两个表视图做什么 【参考方案1】:

是的,这是可能的。您只需要检查表视图名称或标签以区分数据源和委托方法中的表视图。例如,对于 numberofRowsInSection 数据源方法,您可以这样做。

- (NSInteger)tableView:(UITableView *)tableview numberOfRowsInSection:(NSInteger)section     

if(tableview==firstTableview)
   
    return 4;

else 
    return 6;



所以你只需要像这样检查每个数据源和委托方法。希望对您有所帮助。

【讨论】:

【参考方案2】:

另一种更简洁的方法是将两个不同的 UITableViewController 添加到 XIB 并将其设置为不同的类。

您的 XIB 应如下所示。您无需将表视图数据源和委托连接到文件的所有者,而是将其连接到他们自己的控制器。

这样,您的代码将干净且易于维护。稍后如果您想将该表移动到不同的视图,这非常简单,只需更改 IB 即可。

【讨论】:

如何像这样向一个视图控制器添加 2 个表视图? 我照你说的做了,但由于某种原因,我在启动应用程序时看不到表格视图......:/【参考方案3】:

简单的去库选择tableView并放入xib并设置一个tag=1 然后在 xib 上的 drob 上获取其他表 set tag=2

您可以通过标签或它们的 ivar 名称来区分;

所以在表的数据源方法和委托中设置适当的 if else 条件。您也可以在特定情况下隐藏任何一个。

意味着使用你的大脑和逻辑。

【讨论】:

【参考方案4】:

我已经创建了两个表并将两个表委托和数据源映射到 .xib 文件中的文件所有者在这个阶段我得到了错误。我通过以下方式解决了它: 在头文件(IBOUTLEt)中添加两个表视图用于识别表 对于第一个表映射数据源和通过 .xib 文件进行委托 对于第二张表,我在 .m 文件中进行了描述。 它运行良好.....

【讨论】:

无需人为地映射一个通过 Nib (.xib) 和一个通过 .m。您可以为每个设置一个“标签”,或为每个设置单独的“IBOutlet”,以区分。可能有很多其他方法可以做到这一点。

以上是关于一个XIB中是不是可以有两个表视图?的主要内容,如果未能解决你的问题,请参考以下文章

将两个 xib 文件中的两个 tableviews 添加到主 xib 视图

基于行数问题的表格视图宽度

如何从 XIB 中删除表视图?

表视图推送到新视图 XIB 的

当我在表视图中配置它时,使用表视图 xib 常量空间正在消失

如何在我的表视图中反映 xib 文件的约束?