2016-02-29 3 views
0

Я встроил ViewController (1) в контроллер навигации. На панели навигации этого ViewController я добавил кнопку и сделал управление-перетащить действие на другой ViewController (2). При запуске приложения и нажатии кнопки никакого push-action (show) не выполняется.Push не работает в навигационном контроллере

Что я сделал, так это то, что я назначил новый класс для (2), поэтому я могу настроить его программно. После того, как я назначил, я снова установил сегу с моей кнопки в своем раскадровке. Это все еще не работает. Я не назначал кнопку на навигационную кнопку на сюжетной панели, потому что в другом виде-контроллере (3) от нее она работала без этого.

Должен ли я назначить кнопочный метод с помощью segue? Но почему он работает в (3)? Я не знаю, какой код я должен опубликовать, потому что проблема кажется такой тривиальной.

Редактировать: На изображении вы можете увидеть контроллер навигации (1) с видом карты и (2). Я не могу нажать кнопку «Выбрать» на (2). Должен ли я реализовать контроллер навигации и добавить как (1), так и (2) в качестве контроллеров детского просмотра?

enter image description here

+0

показывают, что у хочу сделать с помощью экрана –

+0

я добавил скриншот Теперь, который должен прояснить мою проблему. – Vancore

+1

Существует несколько способов достижения этого. Просто введите «Идентификатор раскадровки» для второго (2) монитора представлений. Затем перейдите к этому ViewController через этот конкретный идентификатор раскадровки и вызовите метод нажатием кнопки «Выбрать», чтобы нажать на этот контроллер. – ASP

ответ

0

Я решил это сам.

В основном то, что я делал, было создание пользовательских навигации контроллера и дал ему (1) и (2), как вид ребенка контроллеры с помощью:

[self addChildViewController: [(1)]; 
[self addChildViewController: [(2)]; 

Я не знаю, если это лучший подход к раскадровке , но это сработало для меня.

1

Эй, @ Ванкор просто выполните следующие шаги:
1. Получите два контроллера обзора Fist и Second.
2. Выберите First View Controller и вставьте в контроллер навигации.
3. Добавить кнопку на панели навигации справа.
4. Нажмите кнопку на панели навигации, которая просто добавлена, затем щелкните правой кнопкой мыши, удерживая ее, перетащив ее на второй контроллер и отпустите.
5. Выберите «Показать».
6. Запустите проект, он отлично работает без каких-либо проблем.

Другой способ
1. Создать IBAction() для кнопки в первом контроллере представления.
2. Из первого контроллера просмотра выберите желтую круглую кнопку контроллера. Затем щелкните правой кнопкой мыши, удерживая ее, перетащив ее на второй контроллер и отпустите. Выберите Показать
3. Установите идентификатор для перехода в инспектор атрибутов, например. "MySegue".
4. Выполните SEGUE в методе IBAction с помощью следующего кода

[self performSegueWithIdentifier:@"mySegue" sender:self]; 
Смежные вопросы