[問題] 如何取得text的值在tableview cell裡?

作者: mick99988 (高雄人)   2017-06-19 15:59:21
目前被這個問題卡了三天了...
我是用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不能複製貼上只好一個字一個字打...
作者: LFimi   2017-06-19 16:58:00
你畫面只顯示的出10個cell 所以抓不到第11個可以在textFieldDidEndEditing就先把txtName存下來
作者: G888888   2017-06-19 17:52:00
看起來像沒出現在畫面上的cell已經不見了
作者: mick99988 (高雄人)   2017-06-19 18:03:00
你好 能在詳細說明一下嗎? 剛入門...本來以為設定上的textfield很簡單...好像確實像你說的當我滑下去 第0個就不見然後就crash了..
作者: coastq46833   2017-06-19 19:48:00
一樓是指每填完一筆就會把資料記起來,textfieldDidEndEditing 可以告速你某個textfield資料填好了
作者: mick99988 (高雄人)   2017-06-19 20:54:00
這麼說好了 我會有32格cell 但並不是每格都需要填,是隨使用者高興,如果沒填就是"" 這樣的設定會有問題嗎還是說要做成static?
作者: yoshilin (明明可以靠臉吃飯)   2017-06-20 05:05:00
ios的tableView只保留顯示中的cell,值要另存在model
作者: xpop777 (Archie)   2017-06-20 12:53:00
你要存的東西是 model,textfield 是 View,要先切開來
作者: mick99988 (高雄人)   2017-06-20 13:47:00
這邊還不是很懂... 版上有關鍵字嗎? 我查中文大多都只教UItableviewController..
作者: otaku5566 (オタク56)   2017-06-20 20:22:00
1.實作UITextFieldDelegate的protocol函式textFieldDidEndEditing當你有設好delegate的UITextField結束編輯時會觸發此式2. 把撈到的欄位值存進字典檔http://cms.35g.tw/coding/ios-uitextfield/ 網路範例tableView小細節其實滿多,建議先拉16個TextField練習
作者: mick99988 (高雄人)   2017-06-20 23:35:00
好的 我先研究先
作者: LFimi   2017-06-21 14:23:00
你要先理解table cell的reuse概念就算你的table有100個cell, 但是畫面中只看得到10個那實際存在的cell就只有大約10~12個每次移動畫面,就會拿移出畫面的cell重新當作移到畫面的cell所以你存資料不能在最後才一次拿全部的cell去讀資料所以只能在cell的textField的資料一改變就立刻存下來

Links booklink

Contact Us: admin [ a t ] ucptt.com