我试图在用户选择当前tableview中的某一行时计算如何转换到新视图。我认为这将由didselectrowatindexpath方法完成,但无法弄清楚它将如何工作的逻辑。我希望它显示一个视图,其中包含用户选择的主题中的特定课程。我想这将使用一个数组?我要感谢任何帮助谢谢。
答案 0 :(得分:1)
是的,你是对的,你可以这样做来回应didSelectRowAtIndexPath。
您可以将视图控制器作为实现这些方法的表视图委托:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
if let thing = self.things.objectAtIndex(indexPath.row) as? Thing
{
self.performSegueWithIdentifier("OpenThing", sender: thing)
}
}
在哪里" OpenThing"是我的故事板中定义的segue。
然后我覆盖了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"的人为例子。我通过行索引访问一个东西然后segue到下一个视图控制器,提供我想要显示的东西。