簡體   English   中英

迅捷3:獲取一個操作按鈕以觸發TableView

[英]Swift 3: Get an action button to trigger a TableView

美好的一天,我想在表格視圖之外使用一個按鈕來觸發顯示該表格視圖(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)
    {

    }

謝謝。

您可以通過多種不同的方式來執行此操作。 最簡單的方法之一是在啟動時隱藏表格視圖,然后在單擊按鈕時顯示表格視圖。 就像是:

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

但是實際的實現可能必須根據您要實現的目標而有所不同。 例如,您可能希望表格視圖始終可見,但是在您點擊按鈕之前,不希望在那里顯示任何數據。 在這種情況下,您必須做一些不同的事情。

您可以實現一個變量來指示是否要在表視圖中顯示數據。

var showData = false

然后,如果showData為true,則實現numberOfRowsInSection以返回實際的行數,否則返回0。

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

這樣,您可以控制何時顯示數據以及何時不顯示數據。 當然,您必須在按鈕click方法中將showData設置為true並重新加載數據。 像這樣:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM