根据按下的按钮更改表格视图标题

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"

您可能需要将上面的行放在它上面的块中。

【讨论】:

以上是关于根据按下的按钮更改表格视图标题的主要内容,如果未能解决你的问题,请参考以下文章

如何根据按下的 UIButton 重新填充表格视图?

IOS/Objective-C:检测自定义表格视图单元格中的按钮按下?

更改在 UITableview 中按下的特定按钮的图像

更改表格视图中所有单元格按钮的颜色

带有按钮的表视图,可根据用户输入更改标签

将按钮标题传递给新视图