如何从用户选择tableview swift中的行显示新的tableview

时间:2015-03-21 02:08:00

标签: ios uitableview swift segue

我试图在用户选择当前tableview中的某一行时计算如何转换到新视图。我认为这将由didselectrowatindexpath方法完成,但无法弄清楚它将如何工作的逻辑。我希望它显示一个视图,其中包含用户选择的主题中的特定课程。我想这将使用一个数组?我要感谢任何帮助谢谢。  enter image description here

1 个答案:

答案 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到下一个视图控制器,提供我想要显示的东西。