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

看板MacDev作者 (高雄人)時間8年前 (2017/06/19 15:59), 編輯推噓5(5024)
留言29則, 7人參與, 最新討論串1/1
目前被這個問題卡了三天了... 我是用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://www.ptt.cc/bbs/MacDev/M.1497859163.A.5D8.html

06/19 16:58, , 1F
你畫面只顯示的出10個cell 所以抓不到第11個
06/19 16:58, 1F

06/19 17:00, , 2F
可以在textFieldDidEndEditing就先把txtName存下來
06/19 17:00, 2F

06/19 17:52, , 3F
看起來像沒出現在畫面上的cell已經不見了
06/19 17:52, 3F

06/19 18:03, , 4F
你好 能在詳細說明一下嗎? 剛入門...本來以為設定上
06/19 18:03, 4F

06/19 18:03, , 5F
的textfield很簡單...
06/19 18:03, 5F

06/19 18:06, , 6F
好像確實像你說的當我滑下去 第0個就不見然後就crash了
06/19 18:06, 6F

06/19 18:06, , 7F
..
06/19 18:06, 7F

06/19 19:48, , 8F
一樓是指每填完一筆就會把資料記起來,textfieldDidE
06/19 19:48, 8F

06/19 19:48, , 9F
ndEditing 可以告速你某個textfield資料填好了
06/19 19:48, 9F

06/19 20:54, , 10F
這麼說好了 我會有32格cell 但並不是每格都需要填,是
06/19 20:54, 10F

06/19 20:54, , 11F
隨使用者高興,如果沒填就是"" 這樣的設定會有問題嗎
06/19 20:54, 11F

06/19 20:54, , 12F
還是說要做成static?
06/19 20:54, 12F

06/20 05:05, , 13F
ios的tableView只保留顯示中的cell,值要另存在model
06/20 05:05, 13F

06/20 12:53, , 14F
你要存的東西是 model,textfield 是 View,要先切開來
06/20 12:53, 14F

06/20 13:47, , 15F
這邊還不是很懂... 版上有關鍵字嗎? 我查中文大多都只
06/20 13:47, 15F

06/20 13:47, , 16F
教UItableviewController..
06/20 13:47, 16F

06/20 20:22, , 17F
1.實作UITextFieldDelegate的protocol函式textFieldDid
06/20 20:22, 17F

06/20 20:22, , 18F
EndEditing
06/20 20:22, 18F

06/20 20:24, , 19F
當你有設好delegate的UITextField結束編輯時會觸發此式
06/20 20:24, 19F

06/20 20:26, , 20F
2. 把撈到的欄位值存進字典檔
06/20 20:26, 20F

06/20 20:29, , 21F
06/20 20:29, 21F

06/20 20:34, , 22F
tableView小細節其實滿多,建議先拉16個TextField練習
06/20 20:34, 22F

06/20 23:35, , 23F
好的 我先研究先
06/20 23:35, 23F

06/21 14:23, , 24F
你要先理解table cell的reuse概念
06/21 14:23, 24F

06/21 14:23, , 25F
就算你的table有100個cell, 但是畫面中只看得到10個
06/21 14:23, 25F

06/21 14:24, , 26F
那實際存在的cell就只有大約10~12個
06/21 14:24, 26F

06/21 14:25, , 27F
每次移動畫面,就會拿移出畫面的cell重新當作移到畫面的cell
06/21 14:25, 27F

06/21 14:26, , 28F
所以你存資料不能在最後才一次拿全部的cell去讀資料
06/21 14:26, 28F

06/21 14:27, , 29F
所以只能在cell的textField的資料一改變就立刻存下來
06/21 14:27, 29F
文章代碼(AID): #1PHuHRNO (MacDev)
文章代碼(AID): #1PHuHRNO (MacDev)