如何执行从表视图单元格到不同视图控制器的segue

问题描述 投票:0回答:1

我想执行从表视图单元格到不同视图控制器的segue,而不是通过使用相同的控制器并更改其中的内容。如图所示,我有两个部分。enter image description here

我是这样做的,但是没有成功。单击两个部分时,将显示同一页面:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        
        if indexPath.row == 0 {
            
            performSegue(withIdentifier: "toSettings1", sender: nil)
        }else if indexPath.row == 1 {
            performSegue(withIdentifier: "toSettings2", sender: nil)
        }
        
    }
    
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        
        if segue.identifier == "toSettings1" {
            let vc = segue.destination as? ReferencesViewController
        }else if segue.identifier == "toSettings2"{
            let vc = segue.destination as? LiabilityViewController
        }
    }```

swift tableview segue didselectrowatindexpath
1个回答
0
投票

您有 2 个部分,每个部分 1 行,您应该如下编写:


func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        
        if indexPath.row == 0 && indexPath.section == 0 {
            
            performSegue(withIdentifier: "toSettings1", sender: nil)
        }else if indexPath.row == 0 && indexPath.section == 1 {
            performSegue(withIdentifier: "toSettings2", sender: nil)
        }
        
    }
    
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        
        if segue.identifier == "toSettings1" {
            let vc = segue.destination as? ReferencesViewController
        }else if segue.identifier == "toSettings2"{
            let vc = segue.destination as? LiabilityViewController
        }
    }```


© www.soinside.com 2019 - 2024. All rights reserved.