为什么viewDidLoad()中不存在TableView的FooterView,以及如何解决?

时间:2018-09-06 18:30:27

标签: ios swift uitableview tablefooterview

我有tableView,在情节提要中设置了一个版块和页脚。我正在尝试使用以下代码在footerView中的表viewDidLoad()中更改文本

tableView.footerView(forSection: 0)?.textLabel?.text = "Testing text"

tableView.footerView(forSection: 0) == nil

然后,在用户点击按钮时,我调用了函数,该函数使用相同的代码更改footerView的文本,并且效果很好。

func changeFooterText() {
    tableView.footerView(forSection: 0)?.textLabel?.text = "Testing text after tap"
}

为什么footerView中不存在viewDidLoad,如何更改viewDidLoad中的文本?还是应该在其他地方更改它?加载屏幕后,我需要在页脚中添加文本,具体取决于屏幕上的其他数据。

期待阅读您的善意建议。

2 个答案:

答案 0 :(得分:1)

您可以使用表格页脚视图方法:

override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? 

答案 1 :(得分:0)

“ viewDidLoad”在视图生命周期中为时过早。 UITableView尚未构建其组件。

您可能 可以将代码移至“ viewDidAppear”,但是最好以与构建其他单元格相同的方式构建页脚和页眉。 dequeueReusableHeaderFooterViewWithIdentifier委托方法就是为此目的。