我有一个带有一个原型单元格的表视图。当我运行应用程序时,我可以让多个单元格显示正确的内容。我希望每个单元格导航到不同的视图控制器,而不是同一个视图控制器简单地显示不同的内容。我为每个视图控制器创建了一个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)
}