0

我正在努力用https://github.com/CosmicMind/Material替换 UINavigationControllers 和其他 iOS 标准 UI 类,特别是我坚持使用 NavigationBarViewController。我知道在后台它使用父/子控制器设置来呈现新的视图控制器,但我不知道如何才能将基本的导航 VC 推送到堆栈上,左侧的后退按钮返回。浏览 NavigationBarViewController 的源代码似乎没有办法做到这一点。是否可以使用 NavigationBarViewController 来做到这一点?

4

1 回答 1

0

要转换作为 NavigationBarViewController 主体的 mainViewController,可以使用

transitionFromMainViewController

方法。但是,它支持动画选项,不支持 MoveIn 或 Push 动画。

为此,您需要使用 MaterialAnimation API 中可用的转换方法。

例子:

let vc: HashtagListViewController = HashtagListViewController()
    vc.view.layer.addAnimation(MaterialAnimation.transition(.MoveIn, direction: .Right), forKey: kCATransitionFromRight)

    navigationBarViewController?.transitionFromMainViewController(vc)

基本上你正在做的是利用 UIViewController.view.layer 的过渡动画。

如果你不想去那个努力,

transitionFromMainViewController

提供了一些不错的开箱即用动画,您可以使用。

在 Material 的未来版本中,将会有一个完整的 NavigationViewController 堆栈来完成您所要求的一切。

更新

In Material 1.36.0, there are two new classes, NavigationBar and NavigationController. NavigationController is a subclass of UINavigationController, so all the features for pushing and popping UIViewControllers on the stack of items is the same, while getting the ability to customize the controller's look and feel with ease.

The example App project shows how to use this.

于 2016-02-25T23:01:49.767 回答