单击不同按钮时如何更改tableView textLabel。我有两个动作按钮brandButton和profileButton,我想要发生的是当我点击brandButton brandInformation时会显示tableView textLabel,当我点击profileButton时,profileInformation会显示出来。
import UIKit
class StreamDetailController: UITableViewDataSource, UITableViewDelegate{
@IBOutlet weak var tableViewController: UITableView!
var brandInformation = ["Hat:","Top:","Pants:","Shoes"]
var profileInformation = ["tim", "master"]
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return brandInformation.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableViewController.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
cell.textLabel?.text = brandInformation[indexPath.row]
return cell
@IBAction func brandButton(_ sender: Any) {
}
@IBAction func profileButton(_ sender: Any) {
}
答案 0 :(得分:0)
注意:强>
在这一行:
@IBOutlet weak var tableViewController: UITableView!
变量是错误的,可能会令人困惑。 tableViewController
应重命名为tableView
添加一个类var以保存您想要查看的视图,并使用按钮对其进行修改。然后在表格上调用reloadData
来刷新内容:
cell.textLabel?.text = brandInformation[indexPath.row]
到
var isShowBrand = true
// [...]
if isShowBrand {
cell.textLabel?.text = brandInformation[indexPath.row]
} else {
cell.textLabel?.text = profileInformation[indexPath.row]
}
以及rowcount(您也可以使用三元运算符:
return isShowBrand ? brandInformation.count : profileInformation.count
(如果您希望按单元格保存它,那么您需要保存此信息,类似于保存单元格数据的方式var showBrand = [true, false]
- 但要检查所有3个数组是否具有相同的项目数以避免{{1}错误)
只需创建一个额外的数组index out of bounds
,然后在按钮中设置您需要查看的数组。所有数据填充都是使用tableData
数组完成的(您需要将所有tableData
更改为brandInformation
)
tableData