Цепочка респондента, начиная с button
, проходит через предки button
и контроллеры представлений. Поскольку VC1 и VC2 являются отдельными элементами в стеке контроллера навигации, VC1 не является предком VC2. Они больше похожи на братьев и сестер друг друга. Таким образом, VC1 не входит в цепочку респондента button
.
Вы можете просто установить VC1 в качестве цели действия кнопки:
let vc1: VC1 = ...
button.addTarget(vc1, action: #selector(VC1.method1), for: .touchUpInside)
Но это означает, что VC2 требуется ссылка на существующий Экземпляр VC1. Как вы получили эту ссылку? Это зависит от того, как вы создали VC2 и поместили его в стек навигации.
Если VC1 создает VC2 в коде, тогда VC1 может просто дать новому VC2 ссылку на self
(VC1) при создании VC2 .
Если у вас есть переход от раскадровки от VC1, который помещает VC2 в стек, то вам нужно внедрить prepare(for: UIStoryboardSegue, sender:)
в VC1, и в этом методе вам нужно передать self
(VC1) к месту назначения. of the segue (VC2).