UITableViewDelegate didSelectRowAt Conditional Execute基于Row

时间:2018-01-07 21:42:18

标签: uitableview cocoa-touch didselectrowatindexpath

我感兴趣的是能够根据用户选择的行有条件地执行代码。有没有办法将标识符与cellForRowAt中的每一行(单元格)相关联,以帮助区分选择在DidSelectRowAt委托中使用哪一行?

1 个答案:

答案 0 :(得分:1)

是。您使用Object.assign(this.portfolio_value, values); Object.assign(this.portfolio_labels, labels); 方法是正确的。如果您有一个包含该表的视图控制器,则视图控制器必须采用两个标准委托:DidSelectRowAtUITableViewDataSource

UITableViewDelegate

App Image

这将输出: class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { @IBOutlet weak var table: UITableView! let message:[String] = ["Hello", "World", "How", "Are", "You"] /* Table with five rows */ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 5 } /*Have a simple table with cells being the words in the message */ func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = UITableViewCell() cell.textLabel?.text = message[indexPath.row] return cell } /*Optional method to determine which row was pressed*/ func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){ print("I'm row number "+String(indexPath.row)) } /*set the table's delegate and datasource to the view controller*/ override func viewDidLoad() { super.viewDidLoad() self.table.delegate = self self.table.dataSource = self } } 回想一下,索引从零开始