Есть два решения я могу думать офф в верхней части головы:
- Сделайте свою кнопку подчиненным элементом родительского контроллера; это, очевидно, не будет работать, если вы хотите, чтобы ваша кнопка была подчиненной для одного из представлений контроллера детского просмотра;
Чтобы расширить предложение @ NazmulHasan, вы можете реализовать собственный протокол для контроллеров вашего дочернего представления. Чтобы взять контроллер детского представления 1 в качестве примера, вам просто нужно объявить протокол делегата для этого класса. Это говорит о том, что компилятор, который выполняет функции делегата контроллера представления, должен реализовать, чтобы удовлетворить протокол. Так что вы могли бы сделать что-то вроде этого:
протокол childViewControllerOneDelegate { функ buttonWasPressed (отправитель: UIButton) -> Пустота {
Кроме того, необходимо добавить свойство к контроллеру представления ребенка следующим образом :
var myDelegate : childViewControllerOneDelegate!
Это неявно развернутая по желанию, потому что вы не можете установить делегат при инициализации класса; вы установите его, как я расскажу ниже.
В самой верхней части родительской декларации вид класса контроллера, вы затем объявить, что контроллер представления соответствует этому протоколу:
class parentViewController : UIViewController, childViewControllerOneDelegate ... Etc, etc {
При инициализации childViewControllerOne из контроллера родительского вида, вы можете добавить линия прямо потом, что говорит:
myChildViewControllerOne.delegate = self
Наконец, возвращаясь к кнопке и контроллеру представления ребенка, вы просто добавить действие на него, что вызывает следующее:
self.myDelegate.buttonWasPressed(self.button)
Это вызовет метод в контроллере родительского представления, и вы сможете делать все, что вам нужно.
Надеюсь, что помогает.Как всегда с этими ответами, я пытаюсь сжать много информации в небольшое пространство, поэтому напишите мне, если у вас есть какие-либо вопросы. Всего найлучшего!
Что вы пытаетесь? делитесь кодом, пожалуйста. есть ошибки? если да, то что это? –
@ NazmulHasan - Три монитора просмотра - VC1, VC2 и VC3. VC1 является родительским, а VC2, VC3 - подчиненными. VC1 отображает как VC2, так и VC3 как стиль карты, которые можно прокручивать влево или вправо (эта часть работает). Я хотел бы иметь кнопку на VC2, так что при щелчке она автоматически сместится на VC3 – NKay
! вы можете сделать по протоколу –