快速:didSelectRowAtIndexPath

Posted

技术标签:

【中文标题】快速:didSelectRowAtIndexPath【英文标题】:swift: didSelectRowAtIndexPath 【发布时间】:2017-03-12 15:20:22 【问题描述】:

我有 tableViewController。我想单击 1 个单元格并获取 print("0") 并单击 2 个单元格并获取 print("1")

但是我的代码不起作用。为什么?

import UIKit

class MasterViewController: UITableViewController 

override func viewDidLoad() 
    super.viewDidLoad()
    tableView.delegate = self
    tableView.dataSource = self


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()


// MARK: - Table view data source

override func numberOfSections(in tableView: UITableView) -> Int 
    return 1


override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return 10 


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: String(format: "Cell%d", indexPath.row), for: indexPath)
    return cell


func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 

    if indexPath.row == 0 
        print("0")
    

    else if indexPath.row == 1 
        print("1")
        self.performSegue(withIdentifier: "detailSegue", sender: self)
    


【问题讨论】:

“不起作用”没有太多解释。发生了什么? 可能你没有为这个tableview设置委托和数据源。 你使用的是什么版本的 Swift? 更新问题 @vadian swift 3 【参考方案1】:

在 Swift 3 中,UITableViewController 中方法的签名是

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)

【讨论】:

谢谢。如果我在每个line 中使用self.performSegue(withIdentifier: «detailSegue», sender: self) 在这种情况下override func prepare(for segue: UIStoryboardSegue, sender: Any?) 不需要使用? 如果您必须将数据传递到目标控制器,则始终需要 prepare(for segue。在您的情况下,我建议将 segue 连接到 cell(而不是控制器),然后不需要 didSelectRowAt,并且该单元格通过 prepare(forsender 参数传递。 【参考方案2】:

您似乎正在尝试在 Swift 3 和旧版本之间进行混合。请将其更改为:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)

【讨论】:

以上是关于快速:didSelectRowAtIndexPath的主要内容,如果未能解决你的问题,请参考以下文章

算法初步:快速乘,快速幂,矩阵快速幂

❤️数据结构入门❤️(4 - 5)- 快速排序

关于快速幂快速乘矩阵快速幂

整数快速乘法/快速幂+矩阵快速幂+Strassen算法 (转)

快速幂和快速乘

快速幂和快速乘