Вы можете попробовать использовать объект заголовка в качестве члена.
var customHeaderView : AddHeaderTableViewCell = nil
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
customHeaderView = Bundle.main.loadNibNamed("AddHeaderTableViewCell", owner: self, options: nil)?.last as! AddHeaderTableViewCell
customHeaderView.txtFieldAdd.placeholder = ""
return customHeaderView
}
И затем вы можете использовать объект члена;
@objc func addMoreToMytask(sender: UIButton!) {
isAddStep = false
// let header = tblAddedTasks.headerView(forSection: 0) as? AddHeaderTableViewCell
// let sectionTitle = header?.textLabel?.text
let sectionTitle = customHeaderView.textLabel?.text
arrAdded.append((customHeaderView.txtFieldAdd.text!)!)
tblAddedTasks.reloadData()
}
Я не уверен, но причина может быть необязательной ценность. Tableview предоставляет только вид на экране, вы можете получить ноль. Подпись функции:
func headerView(forSection section: Int) -> UITableViewHeaderFooterView?
Возвращает необязательную переменную. Вы пытаетесь привести необязательную переменную. XCode может не работать идеально при приведении дополнительных переменных, поэтому он не может предупредить вас с достаточным количеством информации.
Вы можете попробовать;
tblAddedTasks.headerView(forSection: 0) as! AddHeaderTableViewCell
или
tblAddedTasks.headerView(forSection: 0)! as? AddHeaderTableViewCell
Вероятно, вы получите sh, но, по крайней мере, вы увидите реальную причину сбоя.