编辑- UITableView 单元格按钮动作委托- Swift 4

Posted

技术标签:

【中文标题】编辑- UITableView 单元格按钮动作委托- Swift 4【英文标题】:Edit- UITableView cell buttons action delegate- Swift 4 【发布时间】:2019-07-06 08:49:31 【问题描述】:

编辑-

我有 8 个不同的 ViewController 并希望每个单元格都推送它,因此应该转到 ViewControllers 1 等。

这段代码很适合我用segue委托给另一个视图控制器,希望这段代码对你有帮助

编辑-

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    if isPurchased() 
        return freeQuotes.count
    
    return freeQuotes.count + 1


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 


    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    if indexPath.row < freeQuotes.count 

        cell.textLabel?.text = freeQuotes[indexPath.row]
        cell.textLabel?.font = UIFont(name: (cell.textLabel?.font.fontName)!, size:20)
        cell.textLabel?.textColor = cell.textLabel?.textColor = colorLiteral
        cell.accessoryType = .disclosureIndicator


     else 

        cell.textLabel?.text = ""
        cell.textLabel?.font = UIFont(name: (cell.textLabel?.font.fontName)!, size:20)
        cell.textLabel?.textColor = colorLiteral
        cell.accessoryType = .disclosureIndicator

    
    return cell


override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
    if indexPath.row == freeQuotes.count 

    
     performSegue(withIdentifier: segueIndenidentity[indexPath.row], sender: self)


【问题讨论】:

看看,或许对你有帮助! ***.com/questions/29913066/… 【参考方案1】:

它将与开关盒一起处理:

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

   switch indexPath.row 
    case 1:
        // go to first view controller
    case 2:
        // go to second view controller
    case 3:
        // go to third view controller
    case 4:
        // go to fourth view controller
    case 5:
        // go to fifth view controller
    default:
        print("no vc")
    


override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
    super.prepare(for: segue, sender: sender)

    switch(segue.identifier ?? "")
    case "MySegueIdentifier":

        guard let selectedCell = sender as? MainTableViewCell
            else
                fatalError("Unexpected Sender \(String(describing: sender))")
        
        guard let indexPath = mainTableView.indexPath(for: selectedCell)
            else
                fatalError("The selected cell is not being displayed by the table")
        

        switch indexPath.row 
        case 0:
            let nextVC = segue.destination as! FirstViewController
        case 1:
            let nextVC = segue.destination as! SecondViewController
        default:
            print("Nothing")
        

    default:
        fatalError("Unexpected Segue Identifier \(String(describing: segue.identifier))")
    

【讨论】:

你能展示如何在代码中使用prepare segue吗?没有让它正常工作

以上是关于编辑- UITableView 单元格按钮动作委托- Swift 4的主要内容,如果未能解决你的问题,请参考以下文章

uitableview 单元格突出显示

iOS - 使 UITableView 与自定义单元格在按钮单击时可编辑

如何知道 uitableview 是不是有选定的单元格

处理 UITableView 单元格上的平移手势

UITableView 多个动作

在ios的uitableview中自定义单元格编辑样式