У меня есть 2 отдельных контроллера представления, и я использую замыкание для связи между ними. Я хочу нажать кнопку на V C one, чтобы изменить цвет фона V C two. Однако нажатие кнопки со следующим кодом ничего не делает:
class VCOne: UIViewController {
var delta: () -> Void = { }
@objc func buttonPressed() {
delta()
}
override func viewDidLoad() {
super. viewDidLoad()
let pageController = PageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal)
addChild(pageController)
pageController.didMove(toParent: self)
pageContainerView.addSubview(pageController.view)
}
class VCTwo: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
VCOne().delta = {
view.backgroundColor = .red
}
}
}
Теперь я считаю, что моя ошибка заключается в том, что я создаю новый экземпляр VCOne, когда я снова инициализирую его в viewDidLoad () VCTwo ( ), но я не могу получить доступ к delta () в VCTwo () другим способом.
Как мне решить эту проблему?