Ios 在UITableView可见时向UITableView添加数据?

Ios 在UITableView可见时向UITableView添加数据?,ios,uitableview,Ios,Uitableview,我已经阅读了这里的每一篇关于UITableView和重载数据的文章,我发现没有任何东西对我有用 在UI生成器中,我有一个UIViewController xib文件,其中包含一个UIView,在该UIView上还有一个UITableView。我的UIViewController子类是作为xib文件所有者的引用。我的子类是UITableViewDataSource和UITableViewDelegate,我已经连接了数据源和委托引用出口,以指向UI生成器中的UITableView。我已经将构建器中

我已经阅读了这里的每一篇关于UITableView和重载数据的文章,我发现没有任何东西对我有用

在UI生成器中,我有一个UIViewController xib文件,其中包含一个UIView,在该UIView上还有一个UITableView。我的UIViewController子类是作为xib文件所有者的引用。我的子类是UITableViewDataSource和UITableViewDelegate,我已经连接了数据源和委托引用出口,以指向UI生成器中的UITableView。我已经将构建器中的UITableView链接到我的子类中定义的IBOutlet

最初,当显示UITableView时,我用作数据源的底层NSMutableArray中没有数据,因此UITableView按预期为空

稍后,我修改数组,向其中添加数据

然后,我尝试了以下方法来刷新UITableView的视图,但均无效:

  • 更改数组后调用[myTableView reloadData]

  • 调用[myTableView performSelectorOnMainThread:@selector(reloadData),对象为nil waitUntilDone:NO]

  • 在myTableView上调用insertRowsAtIndexPaths,认为可能需要实际告诉它要更新哪一行

这些都不管用。但是,数据就在那里,一切似乎都连接好了,因为每当我向上拖动UITableView并释放它时,第一行暂时消失了,当它返回视图时,它会突然显示预期的内容


有什么想法吗?

我相信你打电话给
[tableView reloadData]

但您可能需要在此方法中设置[array count]

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
和内部

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.textLabel.text = [array objectAtIndex:indexPath];}

这将允许您显示阵列中的数据。

虽然我已将所有内容正确连接,但我一直在跟踪。最终问题根本不在于UITable,也不在于用作UITableView基础的底层数组,而在于我用来为每个单元格生成文本的字典

数组已正确更新,然后调用了reloadData。但是在调用reloadData之前,字典没有加载必要的数据。因此,UITable被“填充”了正确数量的行,但它们都显示为空白,使它看起来好像根本不起作用

一旦我采用trailer trash方法,为每次调用UITableView委托记录一些调试数据,就很明显事情是按预期进行调用的,但是没有为每个单元格正确提取数据


我的猜测是,另一个委托方法numberOfRowsInSection执行不正确。当然也可以是numberOfSectionsInTableView。重新加载后,其中一个或两个都返回零。我没有在TableView中实现NumberOfSections,只有numberOfRowsInSection。我不知道如果您的tableview中只有一个分区,那么numberOfSectionsInTableView是必需的,但我会尝试一下(大概它只需要返回1)。然而,我对此表示怀疑,因为如果我从一个完整的数据数组开始,所有的数据都会出现。在这种情况下,numberOfSectionsInTableView仍然不存在,但它可以工作…@xj1200即使我让所有的委托方法都正常工作,但最终您在这里走对了方向。有关详细信息,请参见我的答案。很好,你把它整理好了。是的,作为一名代表,我已经在我的子类中实现了这些例程。它们使用NSMutableArray。所以这应该在这里起作用。