Cosmicmind / Material:NavigationController和ToolbarController之间的区别

时间:2016-11-10 13:33:16

标签: swift3 cosmicmind

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

虽然工作我试图了解NavigationController和ToolbarController之间的区别。 (也许有人可以另外解释与PageTabBarController的区别)

我没有真正得到它,因为似乎navigationController包含toolbarController。 那么,为什么我应该使用两者如果我只能使用navigationController并准备所有" toolbar-items"那里。

应用程序不久:

  • NavigationDrawerController
    • NavigationController
      1. Site 1
      2. Site 2
      3. PageTabBarController
        1. Site Red
        2. Site Blue
        3. 网站黄色

1 个答案:

答案 0 :(得分:0)

好的问题。

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

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

与ToolbarController一样,PageTabBarController继承自RootController,它提供相同的rootViewController转换,但默认情况下提供了一个UIPageViewController作为初始的rootViewController。

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

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

希望有所帮助:)