是否可以使用addChildViewController
以模态方式呈现视图控制器?我想以模态方式显示UIviewcontroller's
视图,因此它与窗口层次结构下的任何视图重叠。我想在不使用self.presentViewcontroller
的情况下执行此操作,因为我想构建我自己的动画,而不是使用预设的向上/向下翻转/等等。我尝试使用self.addChildViewcontroller(modal)
和self.view.addSubView(modal.view)
但它会进入我的ChildViewController
。当我使用self.view.window?.addSubview
时,应用程序崩溃了。
是否可以使用addChildController
以模态方式呈现UIViewcontroller?
我收录了我的示例代码。
https://github.com/cuongta/testcode
override func viewDidLoad() {
super.viewDidLoad()
var childVC = ChildViewController()
var navVC = UINavigationController()
navVC.viewControllers = [childVC]
self.addChildViewController(navVC)
self.view.addSubview(navVC.view)
}
答案 0 :(得分:1)
您应该使用UIViewControllerAnimatedTransitioning
和UIViewControllerTransitioningDelegate
来实现您的目标。
我认为这是 Apple 的最佳方式。
在对象中采用UIViewControllerAnimatedTransitioning协议 实现自定义视图控制器转换的动画。
此协议中的方法允许您定义动画对象 创建用于打开或关闭视图控制器的动画 屏幕在固定的时间内。您使用此创建的动画 协议不得互动。要创建交互式过渡, 你必须将你的动画师对象与另一个对象结合起来 控制动画的播放时间。
您可以下载 Apple示例代码 here