2016-12-27 44 views
0

我有一個UITableViewViewController顯示Default,根據以下代碼在模擬器上運行五次。如何根據按鈕更改UITableView中Label的文本?

class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate { 

    @IBOutlet weak var myTableView: UITableView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

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

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let myCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! OutsideCell 
      myCell.titleLabel.text = "Default" 
    return myCell 
    } 

    @IBAction func firstButtonPressed(_ sender: Any){ 


    } 

    @IBAction func secondButtonPressed(_ sender: Any) { 

    } 

} 

我也有在ViewController和 底部2個按鈕我喜歡顯示的文本作爲First ButtonfirstButtonPressedSecond ButtonsecondButtonPressed代替在UITableViewDefault。這怎麼可能?

回答

2

點擊按鈕時,您可以遍歷表視圖的每個單元格。

for cell in myTableView.visibleCells() { 
    cell.titleLabel?.text = "First Button" 
} 
+0

欣賞它,工作原理是反正我有可以使第一個按鈕時出現的第一次,而不是默認視圖負荷? – leaner122

+0

在你的cellForRow函數中,只需使用另一個文本值而不是Default。 – TheValyreanGroup

0

您應該使用通用方法eventButtonPressed並使用標籤屬性來確定通過故事板按下哪個按鈕。

@IBAction func eventButtonPressed(_ sender: UIButton) { 
    if (sender.tag == 0) { 
     //First Button 
    } else if (sender.tag == 1) { 
     //Second Button 
    } 
} 

如果您有很多情況,您可以使用開關操作數。

switch sender.tag { 
    case 0: 
     print("First button pressed") 
    case 1: 
     print("Second button pressed") 
    default: 
    print("Default button pressed") 
} 

希望它能幫助,