2

我的目标是最终一次将多个 UITableViews 添加到屏幕上,并允许用户像列一样在它们之间水平滚动。现在要显示我的 tableviewcontroller,我将自定义控制器设置为根控制器:

[[self window] setRootViewController: myCustomController];

这适用于在屏幕上显示一个表格。但是,当我尝试将其更改为:

[self.window addSubview: myCustomController.view];

然后我可以看到我的表格的背景,但它不会将任何单元格加载到其中。同样,如果我这样做:

[self.window addSubview: myCustomController.tableView];

然后它只是再次加载一个空白表,如下所示:

在此处输入图像描述

我还尝试更改自定义控制器的标题以仅扩展 UITableView 而不是 UITableViewController 但是当我尝试插入视图时会发生完全相同的事情,它只是一个空白表。

我尝试将 NSLogs 放入我的一些方法中,似乎没有直接插入控制器,这些方法似乎无法运行:

heightForRowAtIndexPath cellForRowAtIndexPath numberOfRowsInSection

我要做的就是弄清楚如何在屏幕上插入自定义 UITableViewController 的多个不同实例,以便我可以使用其中任何一个:

https://github.com/alekseyn/EasyTableView https://github.com/TheVole/Horizo​​ntalTable

将它们并排放置并显示来自不同数据存储的信息。

4

2 回答 2

0

您的问题是您没有为表格视图设置delegateand datasource

您可以在代码中执行此操作:

//assuming outlet named tableView
self.tableView.delegate = self;
self.tableView.dataSource = self;

此外,您将需要修改相应的.h文件:

@interface something : somethingElse <UITableViewDelegate, UITableViewDataSource>
....

如果您正在通过 IB 创建表格视图,请对 .h 文件进行相同的更改,而是右键单击从表格视图拖动到“场景”底部的橙色小圆圈。你需要这样做两次;一次是为了dataSource,一次是为了delegate

于 2013-04-30T03:52:31.457 回答
0

好吧,您必须先设置表视图数据源和委托,然后才能在其中加载任何数据。

self.yourtableview.delegate = self; self.yourtableview.datasouce = 自我;

如果您不这样做,您的 tableview 将无法知道其实例方法在您的代码中实现的位置,并且无法向它们发送调用。

现在关于您的重绘问题,直到您不点击屏幕。尝试调用 [self.yourtableview reloadData] 来设置 yourtableview 的数据源和委托。此外,如果您更改 tableview 的内容以使它们出现在您的视图中。您将不得不再次调用您的 reloadData 实例方法。

于 2013-04-30T04:47:30.927 回答