Swift 3:获取一个动作按钮来触发TableView

时间:2017-03-26 02:56:20

标签: ios swift action-button

美好的一天,我希望在我的表格视图外面有一个按钮,它会触发显示表格视图(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)
    {

    }

感谢。

1 个答案:

答案 0 :(得分:1)

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

var showData = false

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

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

numberOfRowsInSection

如果showData为真,则实现func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return showData ? <actual row count> : 0 } 以返回实际行数,否则返回0.

showData

这样,您可以控制何时显示数据以及何时显示数据。当然,您必须在按钮单击方法中将@IBAction func button2(_ sender: Any) { showData = true tableView.reloadData() } 设置为true并重新加载数据。像这样:

function findMinimumWordDistance(words, wordA, wordB) {
  var wordAIndex = null;
  var wordBIndex = null;
  var minDinstance = null;

  for (var i = 0, length = words.length; i < length; i++ ) {
    if (words[i] === wordA) {
      wordAIndex = i;
    }

    if (words[i] === wordB) {
      wordBIndex = i;
    }

    if ( wordAIndex !== null && wordBIndex !== null ) {
      var distance = Math.abs(wordAIndex - wordBIndex);
      if(minDinstance === null || minDinstance > distance) {
        minDinstance = distance;
      } 
    }
  }
  return minDinstance;
}