0

我正在开发一个在 Xcode8 中使用 swift3 编写的应用程序。我的应用程序实现了 Cosmicmind-material-framework。

在工作时,我试图了解 NavigationController 和 ToolbarController 之间的区别是什么。(也许有人可以另外解释 PageTabBarController 的区别)

我真的不明白,因为导航控制器似乎包含一个工具栏控制器。那么,如果我只能使用 navigationController 并在那里准备所有“工具栏项”,我为什么要同时使用两者。

很快到应用程序:

  • 导航抽屉控制器
    • 导航控制器
      1. 站点 1
      2. 站点 2
      3. 页面标签栏控制器
        1. 网站红
        2. 网站蓝
        3. 网站黄色
4

1 回答 1

0

好问题。

NavigationController 和 ToolbarController 之间的主要区别在于 NavigationController 是 UINavigationController 的子类,它为您提供该类的所有优点,同时允许您像自定义 ToolbarController 一样自定义外观。

ToolbarController 提供了一种不同类型的流程,一种在视图控制器之间转换rootViewController使用方法的流程。transition它还提供了一个浮动视图控制器,可以有效地以多种方式使用。

与 ToolbarController 一样,PageTabBarController 继承自 RootController,它提供相同的 rootViewController 过渡,但默认提供 UIPageViewController 作为初始 rootViewController。

那么所有这些不同的控制器有什么意义呢?主要的设计原因是允许您堆叠具有这些特殊控件的视图控制器,以便创建更复杂的导航架构,而无需大惊小怪地维护其组织。每个都可以在层次结构中访问,同时管理自己的代码复杂性。用户认为他们都在无缝地协同工作。

一个很好的例子是CardTableView 示例项目,它还展示了如何使用具有基于内容的动态高度的 TableView 在 PageTabBarController 中布局卡片。在大多数情况下,整个 UI 是使用由 Graph 提供支持的持久数据驱动的。

希望有帮助:)

于 2016-11-11T03:21:42.690 回答