作者mick99988 (高雄人)
看板MacDev
標題[問題] 如何取得text的值在tableview cell裡?
時間Mon Jun 19 15:59:21 2017
目前被這個問題卡了三天了...
我是用tableview cell內有放textfield給人輸入
但我的是dynamic cell會有2個section各有16個cell rows
要如何在按下Save紐時抓取全部的text值存進字典後,在上傳至firebase database?
目前找到的方法都會跳出error說有unwraping nil
查看後發現在再第11個cell必定crash...
@IBAction func SaveBtn(_sender: UIBarButtonItem)
{
var dic:[String:String] = [:]
for (i,bit) in BitArray.enumerated()
{
let cell = tableview.cellForRow(at:IndexPath(row: i,section: 0)) as!
LabelNameTableCell
dict[bit] = cell.txtName?.text ?? ""
print(dict[bit])
}
....省略是WordArray
}
類似像iphone內的設定 都會有可以讓人在做輸入的功能
看起來很簡單,實際要做才知道不是自己想像那樣...Orz
有人能提點小弟嗎 謝謝
mac版PPT不能複製貼上只好一個字一個字打...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.105.41.86
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MacDev/M.1497859163.A.5D8.html
1F:→ LFimi: 你畫面只顯示的出10個cell 所以抓不到第11個 06/19 16:58
2F:→ LFimi: 可以在textFieldDidEndEditing就先把txtName存下來 06/19 17:00
3F:→ G888888: 看起來像沒出現在畫面上的cell已經不見了 06/19 17:52
4F:→ mick99988: 你好 能在詳細說明一下嗎? 剛入門...本來以為設定上 06/19 18:03
5F:→ mick99988: 的textfield很簡單... 06/19 18:03
6F:→ mick99988: 好像確實像你說的當我滑下去 第0個就不見然後就crash了 06/19 18:06
7F:→ mick99988: .. 06/19 18:06
8F:推 coastq46833: 一樓是指每填完一筆就會把資料記起來,textfieldDidE 06/19 19:48
9F:→ coastq46833: ndEditing 可以告速你某個textfield資料填好了 06/19 19:48
10F:→ mick99988: 這麼說好了 我會有32格cell 但並不是每格都需要填,是 06/19 20:54
11F:→ mick99988: 隨使用者高興,如果沒填就是"" 這樣的設定會有問題嗎 06/19 20:54
12F:→ mick99988: 還是說要做成static? 06/19 20:54
13F:推 yoshilin: ios的tableView只保留顯示中的cell,值要另存在model 06/20 05:05
14F:→ xpop777: 你要存的東西是 model,textfield 是 View,要先切開來 06/20 12:53
15F:→ mick99988: 這邊還不是很懂... 版上有關鍵字嗎? 我查中文大多都只 06/20 13:47
16F:→ mick99988: 教UItableviewController.. 06/20 13:47
17F:推 otaku5566: 1.實作UITextFieldDelegate的protocol函式textFieldDid 06/20 20:22
18F:→ otaku5566: EndEditing 06/20 20:22
19F:→ otaku5566: 當你有設好delegate的UITextField結束編輯時會觸發此式 06/20 20:24
20F:→ otaku5566: 2. 把撈到的欄位值存進字典檔 06/20 20:26
22F:推 otaku5566: tableView小細節其實滿多,建議先拉16個TextField練習 06/20 20:34
23F:→ mick99988: 好的 我先研究先 06/20 23:35
24F:推 LFimi: 你要先理解table cell的reuse概念 06/21 14:23
25F:→ LFimi: 就算你的table有100個cell, 但是畫面中只看得到10個 06/21 14:23
26F:→ LFimi: 那實際存在的cell就只有大約10~12個 06/21 14:24
27F:→ LFimi: 每次移動畫面,就會拿移出畫面的cell重新當作移到畫面的cell 06/21 14:25
28F:→ LFimi: 所以你存資料不能在最後才一次拿全部的cell去讀資料 06/21 14:26
29F:→ LFimi: 所以只能在cell的textField的資料一改變就立刻存下來 06/21 14:27