ios - 如何将 UINavigationcontroller 动画与 Motion 库一起使用?

标签 ios swift uinavigationcontroller uiviewanimationtransition

我在 GitHub 上发现了一个名为 Motion 的库,它提供了 View 和 Controller 上的转换集。 基于网站,要在导航 Controller 上使用动画,我们需要创建一个新的导航 Controller 类,如下所示,然后我应用新的导航 Controller 。但是当它失败并且没有推送到新的 View Controller 时。

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,那么您需要呈现导航 Controller 而不是推送它。见下文。

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/

相关文章:

ios - 如果数组日期与今天日期相同,则本地通知

iPhone sdk-在 KALViewController 中保存最后选择的日期

swift - CoreData 的 insertNewObjectForEntityForName 使转换为自定义类失败并进行单元测试

swift - 无法启动 NSTrackingArea

ios - UINavigationController 堆栈中的阴影

ios - 实例化 View ,然后导航离开

javascript - 在 ios 中使用 contenteditable ="true"显示 div 的键盘

ios - Coredata fetch 不返回刚刚写入存储的结果

swift - 在 SwiftUI 中更新树结构的 UI

ios - 导航栏中的按钮