Ios Swift 3:获取一个操作按钮以触发TableView

Ios Swift 3:获取一个操作按钮以触发TableView,ios,swift,action-button,Ios,Swift,Action Button,您好,我希望在我的表视图外有一个按钮,该按钮将触发显示表视图(表视图文本首先为空,然后在单击操作按钮后显示)。所有这些都发生在同一个视图控制器中。这是我的TableView代码: func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return postData2.count } func tableView(_ tableView: UITable

您好,我希望在我的表视图外有一个按钮,该按钮将触发显示表视图(表视图文本首先为空,然后在单击操作按钮后显示)。所有这些都发生在同一个视图控制器中。这是我的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)
    {

    }

谢谢。

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

@IBAction func button2(_ sender: Any) {
    tableView.hidden = false
}
但实际实现可能会有所不同,这取决于您试图实现的其他目标。例如,您可能希望表视图始终可见,但不希望在点击按钮之前显示任何数据。在这种情况下,你必须做一些有点不同的事情

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

var showData = false
如果
showData
为真,则执行
numberofrowsin部分
返回实际行数,否则返回0

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

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

@IBAction func button2(_ sender: Any) {
    tableView.hidden = false
}
但实际实现可能会有所不同,这取决于您试图实现的其他目标。例如,您可能希望表视图始终可见,但不希望在点击按钮之前显示任何数据。在这种情况下,你必须做一些有点不同的事情

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

var showData = false
如果
showData
为真,则执行
numberofrowsin部分
返回实际行数,否则返回0

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

当我尝试在numberOfRowsInSection中插入“return showData?:0”时,它给了我一些错误,就像一些预期的表达式一样,我不确定您是想让我在它的位置输入“Int”,还是让它完全按照您所写的那样。顺便说一句,我刚刚在我的原始问题中添加了numberOfRowsInSection函数的代码,以防出错。我想让你把实际的行数放在那里——我不知道你是从变量中得到行数,还是硬编码的——所以我把这个值留给你,让你以任何方式插入:)完成。替换为:“返回showData?Int:0”,但它告诉我:“?:”中的结果值”表达式具有不匹配的类型“int.Type”和“int”
int
是数据类型,而不是值。您必须输入1、10或15之类的值—实际值。或者,包含Int值的变量。这取决于代码的设置方式以及表视图的工作方式。实际上,您应该将
postData2.count
放在上面的代码中,因为这就是您的代码。当我尝试在numberOfRowsInSection中插入“return showData?:0”时,会出现一些错误,就像一些预期的表达式一样,我不知道你是想让我在它的位置输入“Int”,还是让它完全按照你写的那样。顺便说一句,我刚刚在我的原始问题中添加了numberOfRowsInSection函数的代码,以防出错。我想让你把实际的行数放在那里——我不知道你是从变量中得到行数,还是硬编码的——所以我把这个值留给你,让你以任何方式插入:)完成。替换为:“返回showData?Int:0”,但它告诉我:“?:”中的结果值”表达式具有不匹配的类型“int.Type”和“int”
int
是数据类型,而不是值。您必须输入1、10或15之类的值—实际值。或者,包含Int值的变量。取决于代码的设置方式以及表视图的工作方式。实际上,您应该在上面的代码中添加
postData2.count