我的项目有问题。

我创建了从一个VC到另一个VC的自定义过渡。工作正常,但是我的项目正在扩展,因此我需要一个导航控制器。

func itemButtonTapped(item: Item?) {
    if let item = item {
        let itemVC = storyboard!.instantiateViewControllerWithIdentifier("ItemViewController") as! ItemViewController
        itemVC.item = item
        itemVC.transitioningDelegate = self
        //navigationController?.presentViewController(itemVC, animated: true, completion: nil) // #1
        //navigationController?.pushViewController(itemVC, animated: true) //#2
    }
}


上面的代码旨在将viewController添加到现有的导航控制器中。

选项#1-它使用我的自定义过渡并显示VC,但未将其放置在现有的navigiationController中

选项#2-它不使用我的自定义过渡,而是显示嵌入在现有navigationController中的VC

我应该怎么做才能合并这些选项,以便可以使用自定义转换显示VC并将其添加到现有的NavigationController中?

最佳答案

UINavigationController是一个特例,您不能像普通视图控制器那样仅使用过渡委托。相反,您需要遵循UINavigationControllerDelegate协议,并通过这些方法提供要实现的自定义过渡动画。

此处的文档:

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationControllerDelegate_Protocol/

关于ios - 在navigationController中呈现viewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37449011/

10-11 04:35