Ваш viewController должен знать о других viewController и должен иметь возможность взаимодействовать с ними.
Вот хорошая статья о передаче данных между viewController'ами (или просто взаимодействии между viewControllers - как вы например)
Наиболее распространенной практикой является шаблон делегирования. В двух словах о делегировании:
Создайте протокол делегата:
protocol MyDelegate {
func doSmth()
}
Добавьте свойство делегата в viewController
, которое вызовет что-то в anotherViewController
:
var delegate: MyDelegate?
anotherViewController
должен соответствовать протоколу MyDelegate
:
class anotherViewController: MyDelegate {
func doSmth() {
print("I am doing something")
}
}
А затем назначить свой класс, соответствующий протоколу MyDelegate
, в это свойство
viewController.delegate = anotherViewController
Вот и все! Теперь вы можете запускать метод делегата внутри viewController
delegate.doSmth()