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