【问题标题】:Swift 3: Get an action button to trigger a TableViewSwift 3:获取一个动作按钮来触发一个 TableView
【发布时间】:2017-03-26 02:56:20
【问题描述】:

美好的一天,我想要一个在我的表格视图之外触发显示表格视图的按钮(TableView 文本首先为空白,然后在我单击操作按钮后显示)。所有这些都发生在同一个视图控制器中。这是我的 TableView 代码:

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

    return postData2.count
}


    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) 
-> UITableViewCell {

                let cell = tableView.dequeueReusableCell(withIdentifier: "PostCell2")

                let label1 = cell?.viewWithTag(1) as! UILabel
                label1.text = postData2[indexPath.row]

                return cell!
            }

如您所见,我在那里也有一个用于格式化的标签。不知道会不会影响文字的触发。 这是我的空操作按钮的代码:

@IBAction func button2(_ sender: Any)
    {

    }

谢谢。

【问题讨论】:

    标签: ios swift action-button


    【解决方案1】:

    有很多不同的方法可以做到这一点。最简单的方法之一是在开始时隐藏表格视图,然后单击按钮显示表格视图。比如:

    @IBAction func button2(_ sender: Any) {
        tableView.hidden = false
    }
    

    但实际实现可能会有所不同,具体取决于您要实现的其他目标。例如,您可能希望表格视图始终可见,但不希望在您点击按钮之前显示任何数据。在这种情况下,你必须做一些不同的事情。

    您可以实现一个变量来指示是否要在表格视图中显示数据。

    var showData = false
    

    如果showData为真,则执行numberOfRowsInSection返回实际行数,否则返回0。

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return showData ? <actual row count> : 0
    }
    

    这样,您可以控制何时显示数据以及何时不显示数据。当然,您必须在按钮单击方法中将 showData 设置为 true 并重新加载数据。像这样:

    @IBAction func button2(_ sender: Any) {
        showData = true
        tableView.reloadData()
    }
    

    【讨论】:

    • 当我尝试像一些预期的表达式一样在 numberOfRowsInSection 中插入“return showData ? : 0”时,它给了我一些错误,我不确定你是否想让我输入“Int”在它的位置或完全按照你写的那样保留它。顺便说一句,我刚刚将 numberOfRowsInSection 函数的代码添加到我原来的问题中以防万一。
    • 我想让你把实际的行数放在那里——我不知道你是从变量中得到行数还是硬编码它——所以我把这个值留给你插入任何你做的方式:)
    • 完成。替换为:“return showData ? Int : 0”,但它告诉我:“'?:' 表达式中的结果值具有不匹配的类型 'int.Type' 和 'Int'
    • Int 是一种数据类型,而不是一个值。您必须输入 1 或 10 或 15 之类的东西 - 实际值。或者,一个包含 Int 值的变量。取决于您如何设置代码以及您希望表格视图如何工作。
    • 实际上,您应该输入postData2.count,因为这就是您上面代码中的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多