я представляю модель UINavigationController примерно так:
let flowLayout = UICollectionViewFlowLayout()
let firstViewController = FirstViewController(collectionViewLayout:flowLayout)
let navigationController = UINavigationController(rootViewController: firstViewController)
navigationController.modalPresentationStyle = .fullScreen
present(navigationController, animated: true, completion: nil)
этот NavigationController будет содержать два UIViewController, в последнем, когда я увольняю NavigationController, я хочу вызвать функцию в моем главном контроллере, прежде чем уволить
Я знаю, как это сделать с помощью протоколов и делегатов, но только если я использую только два UIViewController, а не UIViewController и UINavigationController.
вроде так
protocol SecondViewControllerDelegate {
func someFunction()
}
class SecondViewController: UIViewController {
var delegate: SecondViewControllerDelegate?
@objc func myRightSideBarButtonItemTapped(_ sender:UIBarButtonItem!)
{
self.delegate?.someFunction()
}
}
у меня естьсоздать CustomNavigationController или есть какой-либо другой способ, например, передача делегата через все ViewController