Метод доступа из Viewcontroller, если он встроен в navigationController - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть два контроллера View AVC и BVC, я представляю модально BVC с анимацией CustomTransition.Мне нужно получить доступ к методу "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 в контроллер навигации, это больше не работает.Что я могу сделать, чтобы это работало?

Большое спасибо

1 Ответ

0 голосов
/ 27 сентября 2018

fromVC теперь является UINavigationController, а не AVC.Чтобы получить доступ к последнему, вам нужно получить его, используя navigationController?.viewControllers.first.Это, однако, предполагает, что AVC является первым контроллером представления, встроенным в объект navigationController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...