2017-03-08 18 views
1

我想要获取一个tableview中所有单元格中的所有数据,这是一个很长的列表。获取所有在其中包含TextField的所有TableView单元格的数据(包括隐藏视图)

我正在寻找一种方法来检索包括隐藏在视图中的所有内容,我知道视图被重用。我认为你们中的一些人可能以前遇到过这个问题,你对此有何看法?

我试图

令细胞= self.tableView.visibleCells

然后循环到每一个小区和各个数据保存到一个数组,但不属于的情况下它是不能有效地得到这些视图或隐藏。有没有办法克服这个问题?

+0

当您快速滚动时,表格视图是否正确显示了UITextFields中的文本? –

+0

@TheMachSystem是的它确实 –

+0

https://stackoverflow.com/questions/28431086/getting-data-from-each-uitableview-cells-swift 只是去这个链接 –

回答

3

在cellForRowAtIndexPath中,您正在告诉表格每个单元格中的内容。那么,为什么你会回过头来问问桌子上的每个细胞是什么?如果用户在第一个单元格中放置“Hello”,那么滚动表格足以将第一个单元格推出视图,然后当用户滚动回到顶部时,您会告诉它将“Hello”放回第一个细胞。您拥有数据源,而不是表格。

您需要一个数据源。如果这是你想要的(例如,数组中的每个索引都可以映射到一个表格行),那么可以先是“空”,也许是一串空字符串。但是,随着用户与单元格中的文本字段进行交互,您需要使用输入的文本更新该数据源。

您应该使用该数据源作为cellForRowAtIndex方法的源代码。这样,您可以在表格请求填充单元格时处理单元格,并且您还可以在用户完成时了解所有数据。

1

为什么不在每次用户在编辑文本字段时轻敲一个键都更新模型?您可以为该单元格子类创建一个协议,并使您的视图控制器成为每个单元格的委托。只要单元格在键入的时候保证保留在屏幕上(如果不是,你会得到一些奇怪的行为),单元格可以发送一条消息给视图控制器或者任何你把它挂起来告诉它什么新值商店。然后当你需要完整的列表时,所有东西都已经存储好了,你不必与tableview交互。

+0

我不知道我明白你的意思先生。你可以在这个指定一个样本片段吗? –

相关问题