【问题标题】:Access method from Viewcontroller when embedded in navigationController嵌入到导航控制器时从视图控制器访问方法
【发布时间】:2018-09-27 09:37:40
【问题描述】:

我有两个视图控制器 AVC 和 BVC ,我正在模态地展示带有 CustomTransition 动画的 BVC。我需要从 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 中时,这不再起作用了。 我该怎么做才能让它发挥作用?

非常感谢

【问题讨论】:

    标签: swift uinavigationcontroller


    【解决方案1】:

    fromVC 现在是 UINavigationController 而不是 AVC。要访问后者,您需要使用navigationController?.viewControllers.first 检索它。但是,这假定 AVC 是嵌入在 navigationController 对象中的第一个视图控制器。

    【讨论】:

    • 您好,感谢您的回答。我想你是对的,但是当我尝试使用 navigationController?.viewControllers 访问它时,它告诉我“使用未解析的标识符 'navigationController'”
    猜你喜欢
    • 2016-04-07
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 2013-05-09
    • 1970-01-01
    相关资源
    最近更新 更多