如何使用 table 视图转到不同的视图控制器?
How do I use a table view to go to different view controllers?
我有一个带有一个原型单元格的表格视图。当我 运行 应用程序时,我可以让多个单元格显示正确的内容。我希望每个单元格导航到不同的视图控制器,而不是仅显示不同内容的同一个视图控制器。我为每个视图控制器创建了一个 segue 并相应地命名它。但我无法弄清楚下一步该怎么做。我是否将以下内容与某种 if 函数一起使用?:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
}
如果选择第一个单元格使用 segue“one”转到视图控制器“one”,如果选择单元格 2 使用 segue“two”转到视图控制器“two”,我该如何指定?我知道没有代码这会更难,但从概念上讲这是如何工作的?
是的,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)
}
}
Segue 准备函数应该如下所示
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)
}
我有一个带有一个原型单元格的表格视图。当我 运行 应用程序时,我可以让多个单元格显示正确的内容。我希望每个单元格导航到不同的视图控制器,而不是仅显示不同内容的同一个视图控制器。我为每个视图控制器创建了一个 segue 并相应地命名它。但我无法弄清楚下一步该怎么做。我是否将以下内容与某种 if 函数一起使用?:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
}
如果选择第一个单元格使用 segue“one”转到视图控制器“one”,如果选择单元格 2 使用 segue“two”转到视图控制器“two”,我该如何指定?我知道没有代码这会更难,但从概念上讲这是如何工作的?
是的,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) } }
Segue 准备函数应该如下所示
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)
}