2017-03-08 19 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

我不知道我明白你的意思先生。你可以在這個指定一個樣本片段嗎? –

相關問題