我已经使用蠕虫标签条可可来获取像Android这样的标签,标签的名称来自服务器响应,根据标签名称的数量,我需要n个视图控制器。
出于测试目的,我对选项卡名称进行了硬编码,对于每个特定的选项卡名称,我还有另一个子名称数组。我的问题是如何更改tableview的内容,以便根据标签名称获得确切数量的子名称
var tabNames = ["Brands", "Sports","Movies", "Mobile","Games"]
var brandsNames = ["Addidas", "Nike","Puma"]
var sportsName = ["Cricket","Fifa","Hockey","Baseball"]
var moviesName = ["Mission Impossible","Matrix","Avatar","Titanic"]
var mobileNames = ["Nokia","Redmi","Samsung"]
var gameNames = ["FIFA 19","PES 19","WWE 2K19","Max Payne"]
我应该尝试
func tableView(_ tableView: UITableView, numberOfRowsInSection
section: Int) -> Int {
// return fruits.count
}
和
func tableView(_ tableView: UITableView, cellForRowAt indexPath:
IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell",
for: indexPath) as! Cell1
//cell.textLabel?.text = fruits[indexPath.row]
return cell
}
我需要获取“品牌”标签,我需要brandNames作为表格视图 内容。
tableview的内容必须根据选项卡名称进行更改。
答案 0 :(得分:1)
例如,创建一个自定义结构作为数据模型
struct Category {
let name : String
let items : [String]
}
声明数据源数组和索引
var categories = [Category]()
var index = 0
在viewDidLoad
中填充数据源数组,并设置index
的当前索引中的UISegmentedControl
categories = [Category(name:"Brands", items: ["Addidas", "Nike","Puma"]),
Category(name:"Sports", items: ["Cricket","Fifa","Hockey","Baseball"]),
Category(name:"Movies", items: ["Mission Impossible","Matrix","Avatar","Titanic"]),
Category(name:"Mobile", items: ["Nokia","Redmi","Samsung"]),
Category(name:"Games", items: ["FIFA 19","PES 19","WWE 2K19","Max Payne"])]
index = // current index of the segmented control
在分段控件的IBAction
中设置索引并重新加载表格视图
@IBAction func categorySelection(_ sender: UISegmentedControl) {
index = sender.selectedSegmentIndex
tableView.reloadData()
}
数据源方法是
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return categories[index].items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! Cell1
cell.textLabel?.text = categories[index].items[indexPath.row]
return cell
}
答案 1 :(得分:0)
我使用了这个enter link description here作为参考,以便可以将特定选项卡的ID传递给ViewController中的tableview并加载该Tablview,因此现在我可以动态添加新的选项卡,并且也可以动态添加相应的Tablview变化