0

我正在使用 Swift 3。我对此进行了搜索并找到了解决方案

navigationDrawerController?.TransitionFromRootViewController

但是当我使用这条线时,它说它TransitionFromRootViewController不是一个函数。

所以我尝试使用

navigationDrawerController?.transition(from: RootViewController(), to: destViewController(), duration: 0.2, options: .transitionCrossDissolve, animations: nil, completion: nil)

但它显示错误:

“从视图控制器调用转换时,子视图控制器必须有一个共同的父视图控制器”

任何人都可以帮助我吗?如果有人可以通过切换推送导航抽屉的示例,那就太好了。

4

1 回答 1

1

这是解决方案,我将其发布到程序目录 Material 2.1.2中的NavigationDrawerController 示例项目

它展示了如何使用多个导航控制器进行转换,以及如何单独转换。

import UIKit
import Material

class LeftViewController: UIViewController {
private var transitionButton: FlatButton!

open override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = Color.blue.base

    prepareTransitionButton()
}

@objc
internal func handleTransitionButton() {
    // Transition the entire NavigationDrawer rootViewController.
    // navigationDrawerController?.transition(to: TransitionedViewController(), completion: closeNavigationDrawer)

    // Transition the ToolbarController rootViewController that is in the 
    // NavigationDrawer rootViewController.
    (navigationDrawerController?.rootViewController as? ToolbarController)?.transition(to: TransitionedViewController(), completion: closeNavigationDrawer)
}

internal func closeNavigationDrawer(result: Bool) {
    navigationDrawerController?.closeLeftView()
}

private func prepareTransitionButton() {
    transitionButton = FlatButton(title: "Transition VC", titleColor: Color.white)
    transitionButton.addTarget(self, action: #selector(handleTransitionButton), for: .touchUpInside)

    view.layout(transitionButton).horizontally().center()
}
}

您可以在GitHub issue-546中找到讨论的参考

祝一切顺利!

于 2016-10-09T20:17:41.633 回答