如何使用表视图转到不同的视图控制器



我有一个带有一个原型单元格的表视图。当我运行应用程序时,我可以让多个单元格显示正确的内容。我希望每个单元格导航到不同的视图控制器,而不是同一个视图控制器简单地显示不同的内容。我为每个视图控制器创建了一个segue,并相应地命名它。但我不知道下一步该怎么办。我是否将以下内容与某种if函数一起使用?:

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

} 

我如何指定如果第一个单元格被选择为使用segue";一个";转到视图控制器";一个";并且如果小区二被选择,则使用segue";两个";转到视图控制器";两个";?我知道没有代码这会更难,但从概念上讲,这是如何工作的?

是的,didSelectRowAt函数是识别此时选择哪个单元格或行的最佳方法。

  • didSelectRowAt函数应如下所示

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if indexPath.row == 0 {
    performSegue(withIdentifier: "FirstViewController", sender: nil)
    } else if indexPath.row == 1 {
    performSegue(withIdentifier: "SecondViewController", sender: nil)
    }
    }
    
  • 分段准备功能应如下

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "FirstViewController" {
    let vc = segue.destination as? FirstViewController
    } else if segue.identifier == "SecondViewController" {
    let vc = segue.destination as? SecondViewController
    } 
    

希望,它有帮助:(

您可以从Xcode身份检查器栏为您的故事板vc提供标识符,最好使用与UIViewController名称相同的名称

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

let vc = UIStoryboard.init(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "MyViewController") as? MyViewController
self.navigationController?.pushViewController(vc!, animated: true)

}

相关内容

  • 没有找到相关文章

最新更新