iOS todo-tutorial,无法重新填充表格视图

Posted

技术标签:

【中文标题】iOS todo-tutorial,无法重新填充表格视图【英文标题】:iOS todo-tutorial, can't repopulate tableview 【发布时间】:2014-08-13 07:39:28 【问题描述】:

所以昨天我开始学习 ios 编程,并按照待办事项应用的教程进行操作。https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/SecondTutorial.html#//apple_ref/doc/uid/TP40011343-CH8-SW1

按照指南告诉我,我已经创建了自己的 tablelistviewcontroller,我之前的所有静态数据在我启动时都消失了,教程告诉我这一点

你会注意到它实现了三个方法——numberOfSectionsInTableView:、tableView:numberOfRowsInSection: 和 tableView:cellForRowAtIndexPath:。您可以通过注释掉这些方法的实现来让您的静态数据再次显示。如果您愿意,请继续尝试。

所以我注释掉了 cellForRowAtIndexPath,它是唯一一个被注释掉的。然后我在“reuseIdentifier”出现错误,所以经过一段时间的谷歌搜索后,我设法将我的单元格命名为“Cells”,我最终得到了这个代码,

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    static NSString *CellIdentifier = @"Cells";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    

    return cell;

但是每次我构建和启动应用程序时,我都看不到我以前的数据,我可以在我的故事板中看到它,但不是在应用程序中。现在我没有想法,因为我是新手,所以我相信解决方案很简单。

如果您需要任何其他数据,请通知。

【问题讨论】:

i cant see my previous data 是什么意思? 请在返回单元格之前添加此行以查看每个单元格中的内容。 cell.textLabel.text = @"someText" 请看这部分:在表格视图中显示静态内容developer.apple.com/library/ios/referencelibrary/GettingStarted/… hey tableview 是用于显示数据而不是用于保存数据。 嘿dreamhawk 这是你的故事板还是模拟器? 【参考方案1】:

我认为你真的误解了这些台词:

那么为什么您的数据不显示?表视图有两种获取方式 数据——静态或动态。当一个表视图的控制器 实现所需的 UITableViewDataSource 方法,表格视图 要求其视图控制器显示数据,无论是否 静态数据已在 Interface Builder 中配置。如果你看 XYZToDoListTableViewController.m,你会注意到它实现了 三种方法——numberOfSectionsInTableView:, tableView:numberOfRowsInSection:, 和 表视图:cellForRowAtIndexPath:。你可以得到你的静态数据 通过注释掉这些方法的实现再次显示。 如果您愿意,请继续尝试。

问题是当您使用应用程序添加数据时,数据不再是static。它是dynamicUITableView 不存储您的数据。它只是显示它。当您使用动态数据时,您将需要一个datasource,它将为tableView 提供要显示的数据。您必须通过 IOS 中的一些可能的存储机制来存储数据。这是一个这样的tutorial which will get you started with Core Data 的链接。 这是一个很好的tutorial which will get you started with UITableView,它将显示动态数据。

问题是你的概念完全错误。

编辑

您可能在接口文件中添加了类似<UITableViewDataSource> 的内容,并且可能已经添加了ViewController 作为表格的数据源(在故事板中使用ctrl-drag 或在代码中使用tableView.datasource = self;)。只需删除这两个,您的静态内容就会再次显示。

【讨论】:

但是我还没有通过应用程序添加数据,这是下一部分。我只通过故事板将数据添加到表格单元中,就像教程中解释的那样。但是由于苹果说“您可以通过注释掉这些方法的实现来再次显示静态数据。”,我不应该能够再次检索该数据吗?? 很抱歉在这里遇到了麻烦,我在哪里可以查看是否在 Main.storyboard 中添加了 或将 ViewController 添加为数据源?我所有的 ctrl-drag 都是从“添加”按钮到“添加待办事项按钮”控制器。 在这里找到了解决方案; ***.com/a/9952311/889771 ,我们会看看这能走多远,谢谢你帮助像我这样的菜鸟...... :)

以上是关于iOS todo-tutorial,无法重新填充表格视图的主要内容,如果未能解决你的问题,请参考以下文章

经常重新填充的大表索引

在 iOS 5 中刷新 JSON 表

用于截断和重新填充表的 PLSQL 过程

jQuery DataTable 从搜索中重新填充表

从本地存储动态重新填充表行

iOS如何做预填充Core数据?