Получил контейнерное представление, как получить информацию о дочернем viewcontroller - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть viewController, добавленный в containerView. Если я знаю containerView, как я могу получить viewController, который добавлен?

В моем containerView, в зависимости от сценария, я загружаю viewController1 или viewController2. В какой-то момент мне нужно извлечь значение переменной из viewController

Я пытаюсь реализовать что-то вроде этого

  • viewController1 имеет переменную -> dataOfVC1
  • viewController2 имеет переменную -> dataOfVC2
if let vc = "viewController in containerView is of type ViewController1" {
   let tempVar = vc.dataOfVC1
}

, когда я набираю containerView. -> все, что я могу найти что-то полезное, это subView..но как я могу получить viewController

как я могу написать свое условие if?

1 Ответ

0 голосов
/ 17 апреля 2020

containerView использует segue для представления ViewController внутри него, поэтому вам нужно переопределить функцию подготовки

var currentVC: UIViewController?

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "embedChildSegue1" {
      if let childVC = segue.destination as? ViewController1 {
        currentVC = childVC
      }
    }else if segue.identifier == "embedChildSegue2" {
      if let childVC = segue.destination as? ViewController2 {
        currentVC = childVC
      }
    }
}

, и вы можете использовать, если еще раз, для проверки текущего V C в другой функции

if let vc1 = currentVC as? ViewController1{
    let tempVar = vc1.dataOfVC1
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...