Как я могу отклонить первый VC, что второй представил модально на первом VC

У меня есть контроллер представления с именем "firstVC" и еще один с именем "secondVC" . второй виртуальный виртуальный канал будет представлен модально на первом виртуальном виртуальном канале. Я хочу отклонить первый виртуальный виртуальный канал и второй виртуальный виртуальный канал, когда пользователь нажимает кнопку на втором виртуальном виртуальном канале. Я вызываю здесь метод, но он выполняется, но во втором виртуальном виртуальном канале ничего не произойдет.

firstVC.dismiss(animated: true, completion: nil)

если вы предлагаете мне использовать делегат, скажите, пожалуйста, как я могу использовать это полностью? Я не знаю, что я должен положить в первый ВК или что я должен положить во второй ВК

еще кое-что

В некоторых других случаях мне нужно выполнить json в первом VC, и когда json завершит работу обоих контроллеров представления (firstVC и secondVC), как я могу это сделать?

1 ответ

Решение

Вот решение с использованием делегата:

protocol DismissDelegate{
    func dismissVC()
}

class FirstViewController: UIViewController, DismissDelegate{

    func showSecondVC(){
        let secondVC = SecondViewController()
        secondVC.delegate = self
    }

    func dismissVC(){
        self.dismiss(animated: true, completion: nil)
    }
}


class SecondViewController: UIViewController{
    var delegate: DismissDelegate?

    @IBAction func buttonAction(sender: UIButton){
        self.dismiss(animated: true, completion: nil)
        delegate?.dismissVC()
    }
}
Другие вопросы по тегам