如何显示用户在表格视图中选择行的新表格视图 swift
how to display a new tableview from user selecting row in tableview swift
我想弄清楚当用户在当前表视图中选择特定行时如何切换到新视图。我认为这将通过 didselectrowatindexpath 方法完成,但无法弄清楚它将如何工作的逻辑。我希望它显示一个视图,其中包含用户选择的主题中的特定课程。我认为这将使用数组?我将不胜感激这里的任何帮助谢谢。
是的,你是对的,你可以通过响应 didSelectRowAtIndexPath 来做到这一点。
您可以将视图控制器作为实现这些方法的 table 视图委托:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
if let thing = self.things.objectAtIndex(indexPath.row) as? Thing
{
self.performSegueWithIdentifier("OpenThing", sender: thing)
}
}
其中 "OpenThing" 是在我的故事板中定义的转场。
然后我重写了 prepareForSegue 方法:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if segue.identifier == "OpenThing"
{
if let controller = segue.destinationViewController as? ThingViewController
{
if let thing = sender as? Thing
{
controller.thing = thing
}
}
}
}
这是一个具有 "Things" 数组的人为示例。我通过行索引访问一个东西,然后转到下一个视图控制器,提供我想要显示的东西。
我想弄清楚当用户在当前表视图中选择特定行时如何切换到新视图。我认为这将通过 didselectrowatindexpath 方法完成,但无法弄清楚它将如何工作的逻辑。我希望它显示一个视图,其中包含用户选择的主题中的特定课程。我认为这将使用数组?我将不胜感激这里的任何帮助谢谢。
是的,你是对的,你可以通过响应 didSelectRowAtIndexPath 来做到这一点。
您可以将视图控制器作为实现这些方法的 table 视图委托:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
if let thing = self.things.objectAtIndex(indexPath.row) as? Thing
{
self.performSegueWithIdentifier("OpenThing", sender: thing)
}
}
其中 "OpenThing" 是在我的故事板中定义的转场。
然后我重写了 prepareForSegue 方法:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if segue.identifier == "OpenThing"
{
if let controller = segue.destinationViewController as? ThingViewController
{
if let thing = sender as? Thing
{
controller.thing = thing
}
}
}
}
这是一个具有 "Things" 数组的人为示例。我通过行索引访问一个东西,然后转到下一个视图控制器,提供我想要显示的东西。