[问题] 如何取得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