Swift: 使用 tableview 创建无限树

Swift: create an infinite tree using tableview

我正在制作一棵树,它有一个根节点和无限层级。

我要实现的是:

我知道点击一个单元格可以触发 performSegueWithIdentifier,它会转到下一个场景。但是,由于这棵树有无限的层次,我想仅仅去另一个场景是行不通的。相反,必须有一种方法来重复当前场景(table视图以显示当前级别节点)以及有关它是哪个级别的信息。

请告知处理这种情况的最佳方法。谢谢。

示例树结构在这里:(

class Node {
  var id:Int;
  var parent:Int?;
  init(id:Int, parent:Int?) {
    self.id = id;
    self.parent = parent;
  }
}

var allNodes = [
  Node(id:1, parent: nil),
  Node(id:2, parent: 1),
  Node(id:3, parent: 1),
  Node(id:4, parent: 2),
  Node(id:5, parent: 2),
  Node(id:6, parent: 3)
];

您可以简单地将数据源 (allNodes) 更新为 tableViewDelegate 方法中的子节点:tableView:didSelectRowAtIndexPath: 然后从 tableView 中删除其他行并调用 tableView.reloadData() 这意味着您的行现在将只是先前选择的单元格的子节点并继续前进,直到您点击叶子,然后您可以在 didSelectRow 方法中检查它是否有子节点,如果没有子节点则什么都不做。

我就是这样做的...