gpt4 book ai didi

ios - 包含 UITableView 和 UICollectionView 的 UISegmentedControl

转载 作者:行者123 更新时间:2023-11-29 01:06:05 24 4
gpt4 key购买 nike

我有一个包含 1 个 SegmentedControl 的 ViewController,它具有三个段,以及 TableView 和 CollectionView。选择段时,前两个段显示带有两个不同自定义 TableviewCell 的 TableView,最后一个显示 CollectionView。选择每个 segemet 调用网络功能来下载数据以填充 TableView 或 CollectionView。该应用程序默认显示第一段的 TableView。问题是当我启动该应用程序时,该应用程序在 numberOfItemsInSection 函数中崩溃,因为它没有任何要填充的数据。我认为这个函数被称为数据源,CollectionView 的委托(delegate)属性被设置为“self”(ViewController)。我应该如何解决这个问题?

最佳答案

好的,所以您可能正在将此数据下载到 JSON 字典或数组中,因此您最初可以将表和 Collection View 设置为没有内容,如下所示:

class ViewController : UIViewController, UITableViewDataSource, UITableViewDelegate, UICollectionViewDataSource, UICollectionViewDelegate {
// note that I would recommend separating these into extensions on ViewController

var htmlResponses = []()

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

return htmlResponses.count
// htmlResponses is empty at this point
}

override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

return htmlResponses.count
// htmlResponses is empty at this point
}
}

然后,一旦您的数据进入,只需用所述数据填充 htmlResponses 数组并调用 tableView.reloadData()collectionView.reloadData() 分别用于 TableView 和 Collection View 。

即使您不使用数组来存储数据,概念也是一样的。使用空元素填充您的 View ,并在您知道数据已从服务器到达后重新加载它们。

关于ios - 包含 UITableView 和 UICollectionView 的 UISegmentedControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36348254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com