根据按下的按钮更改表格视图标题
Posted
技术标签:
【中文标题】根据按下的按钮更改表格视图标题【英文标题】:Changing tableview header based off of what button is pressed 【发布时间】:2020-05-27 16:47:26 【问题描述】:我正在尝试根据用户选择的按钮更改表格视图的标题。但是当我这样做时,标题值为 nil。如何解决此问题以显示正确的标题?
这是我目前的代码。
@IBOutlet weak var tableView: UITableView!
var sectionHeader = “”
override func viewDidLoad()
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
override func prepare(for segue: UIStoryboardSegue, sender: Any?) if segue.identifier == “segue” sectionHeader = “Title 1”
extension ViewController: UITableViewDelegate, UITableViewDataSource
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? return “\(sectionHeader)”
我将如何进行更改,以便根据按下的按钮显示正确的标题?
【问题讨论】:
确保为你的tableView设置代理,否则titleForHeaderInSection
将不会被调用。还要确保实现numberOfSectionsInTableView
。
【参考方案1】:
titleForHeaderInSection
不是动态调用的,而是仅在需要调用时才调用(一次是最初显示数据,然后在滚动过程中标题重新出现在屏幕上时)。
如果您只想刷新所有内容,请致电tableView.reloadData()
如果您需要保留滚动并且不希望重新加载动画,您可以通过调用此块来欺骗 tableView 在更改标题后刷新:
tableView.beginUpdates()
tableView.endUpdates()
或者您也可以直接访问标题,这可能会在某个时候停止工作:
tableView.headerView(forSection: indexPath.section)?.textLabel?.text = "Some text"
您可能需要将上面的行放在它上面的块中。
【讨论】:
以上是关于根据按下的按钮更改表格视图标题的主要内容,如果未能解决你的问题,请参考以下文章