我有TableViewController
的结构(提及授权用途):
----View
-----Scroll View
------Content View
-------TableView
--------TableViewCell
我可以正确加载TableView
的所有行和部分。每个TableViewCell
都有一个可编辑的UITextField
。当用户开始编辑UITextField
时,我需要能够检索用户键入的内容。要更新正确的数据集,我目前的方式是检索indexPath
UITextField
我的问题是:当我慢慢滚动并逐一点击UITextField
时,我不会崩溃。但是,如果我单击一个单元格并快速向下滚动(即使我保持相同的section
),由于indexPath
为空,我崩溃了。
在我的代表中我有这个:
func textFieldDidEndEditing(_ textField: UITextField) {
//here is the code I am using to determine the indexPath
let view = textField.superview!
let cell = view.superview as! UITableViewCell
let viewController = ShowPointsViewController() //this is the name of my ViewController
let textFieldIndexPath = PointSourcesTV.indexPath(for: cell) //this is the name of my TableView
print(textFieldIndexPath) //Returns nil here if I scroll too quickly
let key = tableHeaders[(textFieldIndexPath?.section)!]
}
答案 0 :(得分:1)
我不确定您是否使用正确的方法来获取indexPath
的{{1}}并且可能导致崩溃。但您可以尝试使用UITextField
中的内容,将cellForRowAtIndexPath
的标记设置为UITextField
,然后使用 -
indexPath.row