快速单击按钮时更改tableView textlabel

时间:2017-01-25 22:56:31

标签: ios swift xcode tableview

单击不同按钮时如何更改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) {

    }

1 个答案:

答案 0 :(得分:0)

注意:

在这一行:

@IBOutlet weak var tableViewController: UITableView!

变量是错误的,可能会令人困惑。 tableViewController应重命名为tableView

1。溶液

添加一个类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}错误)

2。溶液

只需创建一个额外的数组index out of bounds,然后在按钮中设置您需要查看的数组。所有数据填充都是使用tableData数组完成的(您需要将所有tableData更改为brandInformation

tableData