table 视图中的部分数与我设置的不相等
The number of sections in the table view is not equal to what I set
代码很简单,客户class、ChecklistViewController,都是继承自UITableViewController 。 Swift 源代码连接到故事板中的 tableViewController,默认原型单元保持不变。
class ChecklistViewController: UITableViewController {
override func numberOfSections(in tableView: UITableView) -> Int {
return 10 // I set 10 sections here
}
override func viewDidAppear(_ animated: Bool) {
let tableView = UITableView()
print("\(tableView.numberOfSections)")// prints out "1" ???
}
}
问题:
我要求数据源函数为 table 视图创建 10 个部分,而后来,它告诉我 table 视图在 viewDidAppear 中只有 1 个部分 函数。不是应该打印出 10 吗?为什么1?
感谢您的宝贵时间和帮助
您正在不必要地创建一个没有数据源或委托的新的空 table。然后你问那个不必要的 table 它有多少部分。由于它没有数据源,因此 returns 默认为 1 个部分。
不要创建额外的 table 视图,而是引用由 table 视图控制器创建的正确 table 视图。
将viewDidAppear
更改为:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("\(self.tableView.numberOfSections)")
}
现在这将访问由 table 视图控制器创建的真实 table 视图。这应该给出正确的结果 10.
请注意 self.
实际上并不需要。我把它放在这里只是为了清楚地表明正在引用哪个 tableView
。
代码很简单,客户class、ChecklistViewController,都是继承自UITableViewController 。 Swift 源代码连接到故事板中的 tableViewController,默认原型单元保持不变。
class ChecklistViewController: UITableViewController {
override func numberOfSections(in tableView: UITableView) -> Int {
return 10 // I set 10 sections here
}
override func viewDidAppear(_ animated: Bool) {
let tableView = UITableView()
print("\(tableView.numberOfSections)")// prints out "1" ???
}
}
问题:
我要求数据源函数为 table 视图创建 10 个部分,而后来,它告诉我 table 视图在 viewDidAppear 中只有 1 个部分 函数。不是应该打印出 10 吗?为什么1?
感谢您的宝贵时间和帮助
您正在不必要地创建一个没有数据源或委托的新的空 table。然后你问那个不必要的 table 它有多少部分。由于它没有数据源,因此 returns 默认为 1 个部分。
不要创建额外的 table 视图,而是引用由 table 视图控制器创建的正确 table 视图。
将viewDidAppear
更改为:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("\(self.tableView.numberOfSections)")
}
现在这将访问由 table 视图控制器创建的真实 table 视图。这应该给出正确的结果 10.
请注意 self.
实际上并不需要。我把它放在这里只是为了清楚地表明正在引用哪个 tableView
。