我有两个视图控制器,一个是oneVC.swift,另一个是twoVC.swift。
我想在oneVC.swift上显示twoVC.swift,作为覆盖层,同时使twoVC.swift的背景颜色透明。请参见附件。
这段代码运行完美。但是当前代码的问题在于,我无法从twoVC.swift进一步推出任何新的控制器,因为它是在oneVC.swift上呈现的。如果我使用pushViewController,就像这样:
使用这种方法无法实现twoVC.swift的透明度。所以,是否有可能使用pushViewController将第二个视图控制器推到第一个视图控制器上并实现透明度呢?
提前感谢您。
我正在尝试以下代码:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let homeVC = storyboard.instantiateViewController(withIdentifier: "twoVC") as! twoVC
homeVC.providesPresentationContextTransitionStyle = true;
homeVC.definesPresentationContext = true;
homeVC.modalPresentationStyle = .overCurrentContext
self.navigationController!.present(homeVC, animated: false, completion: nil)
这段代码运行完美。但是当前代码的问题在于,我无法从twoVC.swift进一步推出任何新的控制器,因为它是在oneVC.swift上呈现的。如果我使用pushViewController,就像这样:
self.navigationController?.pushViewController(homeVC, animated: false)
使用这种方法无法实现twoVC.swift的透明度。所以,是否有可能使用pushViewController将第二个视图控制器推到第一个视图控制器上并实现透明度呢?
提前感谢您。
UIView
并将其覆盖在一个VC上吗?你可以创建一个独立的.xib
,根据你的需求进行设计,然后使用UIView.transition
方法模拟UIViewController
的推送动画效果。一般来说,覆盖VC并不是实现你所要达到目的的途径。 - ThunderStruct