如何将UInavigationcontroller动画与库Motion一起使用



我在GitHub上遇到了一个库调用Motion,它在视图和控制器上提供了一组转换。基于网站,要在导航控制器上使用动画,我们需要创建一个新的导航控制器类,如下所示,我应用了新的导航控件。但当它失败并且没有推送到新的视图控制器时。

GitHub链接是https://github.com/CosmicMind/Motion

class AppNavigationController: UINavigationController {
open override func viewDidLoad() {
super.viewDidLoad()
isMotionEnabled = true
motionNavigationTransitionType = .zoom
}
}

然后在主视图上:

let navigation = AppNavigationController()
navigation.pushViewController(newViewController, animated: false)

如果您在整个应用程序中使用Motion的动画NavigationController,您可以在AppDelegatedidFinishLaunchingWithOptions方法中这样设置。

let newViewController = NewViewController(nibName: "NewViewController",bundle: nil)
let navigation = AppNavigationController(rootViewController: newViewController!)
self.window?.rootViewController = navigation
self.window?.makeKeyAndVisible()

更新:如果您想创建一个单独的NavigationController并向其推送特定的UIViewController,则需要呈现导航控制器,而不是推送它。请参阅下文。

let motionNavController = AppNavigationController(rootViewController: galleryViewController)
motionNavController.motionNavigationTransitionType = .none
motionNavController.isNavigationBarHidden = true
self.present(motionNavController, animated: true, completion: nil)

最新更新