我有两个View控制器AVC和BVC,我以自定义过渡动画的形式呈现BVC。我需要从中访问方法“ myMethod()” AVC。 这是问题所在的代码部分:
enum TransitionType {
case presentation
case dismissal
}
class CustomTransition: NSObject, UIViewControllerAnimatedTransitioning {
var transition: TransitionType = .presentation
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
let fromVC = transitionContext.viewController(forKey: .from)
let toVC = transitionContext.viewController(forKey: .to)
// When AVC is embedded in navigationController, I can't access "myMethod"
guard let myObject = transition == .presentation ? (fromVC as! AVC).myMethod() : (toVC as! AVC).myMethod() else { return }
myObject.isHidden = true
etc...
一切都很好,但是当我将AVC嵌入到navigationController中时,这不再起作用了。 我该怎么做才能使其正常工作?
非常感谢
答案 0 :(得分:0)
fromVC
现在是UINavigationController
而不是AVC。要访问后者,您需要使用navigationController?.viewControllers.first
进行检索。但是,这假定AVC是嵌入在navigationController
对象中的第一个视图控制器。