在swift3中没有调用表视图numberOfSections方法

时间:2016-10-05 13:21:19

标签: uitableview swift3

我有快速3转换代码正常工作。为了更改我已实现的应用功能

  

numberOfSections

但从未打过电话。我不明白为什么?我的Controller是从故事板添加的UIViewController和TableView。 TableView数据源连接到当前视图控制器。我正在获得一个名为

的其他数据源方法
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int

但从未打过电话

func numberOfSections(in tableView: UITableView) -> Int{
        return 3
}

3 个答案:

答案 0 :(得分:2)

你说你设置了tableView的dataSource,但只是为了确保再次在你的代码中重新设置,如下所示:

override func viewDidLoad() {
  super.viewDidLoad()

  tableView.delegate = self
  tableView.dataSource = self
}

答案 1 :(得分:2)

而不是像:

func numberOfSections(in tableView: UITableView) -> Int

这样做:

func numberOfSectionsInTableView(_ tableView: UITableView) -> Int

答案 2 :(得分:1)

我刚遇到同样的问题。将UICollectionViewDelegate,UICollectionViewDataSource附加到我的类中,立即修复了问题,编译器确切地告诉了我一直缺少什么等等。

似乎Swift中的UICollectionView是在协议基础上而不是在基于方法的基础上预先检查是否符合要求。例如,我对“numberOfSections”的实现完全没问题,但是没有符合性声明就没有调用它。