UINavigationController中的UITableViewController表示未知深度的树结构

时间:2014-08-30 05:09:52

标签: ios objective-c uitableview uinavigationcontroller

我对iOS很陌生。我有一些数据本质上是一个从外部数据库中获取的树结构,因此在编译时不会为应用程序定义其深度。我想在UINavigationController中使用UITableViewControllers显示这些信息。在这个阶段,我在我的故事板中的UINavigationController中嵌入了一个UITableViewController,并编写了一个UITableViewController的子类来显示树的第一层。我如何以编程方式转换到我创建的UITableViewController的子类的新实例,同时还为我在故事板中定义的原型单元创建引用。是否可以在iOS中使用UITableViewControllers和UINavigationController设置这种结构?

非常感谢任何帮助。 谢谢!

1 个答案:

答案 0 :(得分:1)

在TableView委托中,将一些代码放入didSelectRowAtIndexPath:方法中,以创建tableViewController子类的新实例。要么传递它所需的任何数据来填充其单元格,要么可能使用顶级TableView委托/数据源作为每个新实例的委托/数据源(您必须跟踪数据层次结构中的位置)。然后,您可以使用self.navigationController pushViewController:animated:转换到新的tableViewController。如果在每个级别使用相同的子类,cellForRowAtIndexPath:方法将使用相同的单元格重用标识符(除非您以其他方式编写代码),因此应在每个级别使用原型单元格。