在 Swift 中创建嵌套分层导航 4

Create a Nested Hierarchical Navigation in Swift 4

我正在开发一个应用程序,它要求用户浏览应用程序根文件夹中存储的文件。我想使用类似于 iOS 上的设置工具的导航样式,其中有一个项目列表,然后单击一个,它会弹出另一个带有后退按钮的项目列表,等等,直到它点击结束。

我似乎找不到任何关于如何在递归的地方执行此操作的示例。

导航应如下所示:

- Learning Swift
  - Monday
    - How to read files
      - material1.pdf
      - material2.pdf
  - Tuesday
    - Using UI Controllers
      - material3.pdf
- PHP
  - Thursday
    - material4.csv
    - material5.pdf
- Ruby
  - Saturday
    - Using Models
      - Help Materials
        - material6.pdf
      - Code Samples
        - config.rb
        - controller.rb
      - material7.pdf

等等

没有设置文件夹结构,所以我需要它能够动态生成。每次用户访问应用程序的这一部分时,我都会从设备上的应用程序存储目录中读取文件夹结构。

谢谢

您可以像“设置”应用、“文件”应用、Phone 应用以及任何其他将导航下推到层次结构中的应用一样进行操作。

您有一个 UINavigationController,其根视图控制器显示一个 table 视图,您在其中列出导航 的文件夹。用户通过点击选择一个,然后您创建另一个显示 table 视图的视图控制器,您在其中列出该文件夹中的文件/文件夹,然后 将其推送 到导航控制器- 等等,递归地。所以横向总是更深一层(或者,使用后退按钮,更浅)。在用户点击之前,您不会创建和填充下一层,此时您只需选择所需的信息(此文件夹中的内容)并显示它。

另一种选择是将相关文件夹的整个层次结构显示为大纲,即带有缩进的单个滚动 table 视图。在 iOS 14 中,您甚至可以拥有一个类似于 Finder 中列表视图的大纲,其中包含用户可以在列表中打开的文件夹。