2

A little confused on how to implement this into my main view controller. The example project shows it as a navigation controller, but I wasn't able to add an existing class on a fresh navigation controller or my current UIViewController. I could just be implementing it wrong though. Much appreciation if I can gain some traction on how to work with these.

4

1 回答 1

3

如果您可以共享一些代码,那就太好了。

如何工作:

导航控制器

目前有 4 种不同的导航控制器,每种都提供自己的功能。这些控制器可以单独使用,也可以一起使用。

SideNavigationViewController

SideNavigationViewController 提供 3 个主体来显示内容:mainViewController、leftViewController 和 rightViewController。

主视图控制器

mainViewController 必须始终存在,并且可以使用该transitionFromMainViewController方法在视图控制器之间进行转换。使用这个方法就像在它的第一个参数中传递一个 UIViewController 一样简单。

sideNavigationViewController?.transitionFromMainViewController(InboxViewController())

还有更多参数允许在视图控制器之间转换时设置动画、完成等。

LeftViewController 和 RightViewController

leftViewController 和 rightViewController 只能设置一次。要使它们动态化,您需要使用另一个导航控制器作为其视图控制器。

导航栏视图控制器

NavigationBarViewController 提供了 NavigationBarView 以及管理两个 UIViewControllers、mainViewControllerfloatingViewController的能力。

主视图控制器

mainViewController 类似于 SideNavigationViewController 的 mainViewController,并且在 NavigationBarViewController 的主体部分有一个从视图控制器转换到视图控制器的 transitionFromMainViewController 方法。

浮动视图控制器

floatingViewController 是一个modalViewController,设置后,它会弹出MainViewController 和NavigationBarView。设置该值是这样的:

navigationBarViewController?.floatingViewController = InboxViewController()

要关闭和隐藏 floatingViewController,请将其设置为 nil,如下所示。

navigationBarViewController?.floatingViewController = nil

搜索栏视图控制器

SearchBarViewController 提供了一个单一的过渡 mainViewController,并且在顶部有一个 SearchBarView。转换 mainViewController 是这样的:

sideNavigationBarViewController?.transitionFromMainViewController(InboxViewController())

菜单视图控制器

MenuViewController 是另一个具有 mainViewController 的控制器,它占据整个屏幕。漂浮在它上面的是一个用于在 mainViewController 之间转换的 MenuView。

menuViewController?.transitionFromMainViewController(InboxViewController())

最后的笔记

这些导航控制器可以以任意组合和任意次数使用,创建一个强大而复杂的控制器堆栈,就像一个控制器一样。

我希望这有帮助 :)

于 2016-02-26T16:04:30.337 回答