我在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)

关于ios - 如何将UInavigationcontroller动画与库Motion一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51437204/

10-11 22:22