Получить подклассный навигационный контроллер текущего ViewController - PullRequest
1 голос
/ 25 июня 2019

У меня есть настройка, в которой я вложил в UINavigationController субкласс, чтобы добавить свойство, содержащее ссылку на другой ViewController

class NavControllerWithReference: UINavigationController { 
    public var referenceToOtherVC: OtherVC? 
}

Теперь, когда я нахожусь в одном из ViewController внутри этого субклассированного NavigationController, я хочу получить доступ кэталонное свойство.Для "нормального" NavigationController я бы обычно просто обращался к свойству navigationController, которое возвращало бы navigationController.Очевидно, он возвращает его как UINavigationController, даже если он находится в подклассе, и я не могу сделать что-то вроде:

let navC = navigationController
if navC is [NavControllerWithReference] {  
    print("Yes")
}

Это просто говорит мне, что:

"Приведение из UINavigationController кнесвязанный тип NavControllerWithReference всегда терпит неудачу ".

Как я могу получить доступ к referenceToOtherVC из дочерних контроллеров представления?

1 Ответ

2 голосов
/ 25 июня 2019

Вам нужно

guard let nav = self.navigationController as? NavControllerWithReference  else { return }
print(nav.referenceToOtherVC)    
...