2012-01-16 2 views
2

Я использую UISegue в своем приложении для автоматического перехода между viewcontrollers в моем приложении. Я назову их A и B.UIStoryboard popViewController

Он работал, как ожидалось, однако, когда мне захотелось всплывать обратно в A из B, я попытался позвонить [self.navigationController popViewController], однако свойство навигации навигации навигации B недействительно.


В качестве второй попытки я попытался отобразить кнопку, на UISegue обратно вид контроллера A.
Однако это только создает новый ViewController.

В работе вокруг, я закончил тем, что делал, как работа вокруг было извлечь из UIStoryboard и вызова [A.navigationController pushViewController:B]

В какой точке, вызывая [B.navigationController popViewController] работал, как ожидалось.

Это кажется неправильным, из раскадровки segue, как я могу вернуться к предыдущему контроллеру представления?

+1

Является ли переход типа «push»? – barley

+0

Это тип push yeah – Onedayitwillmake

ответ

2

Я не знаю о классе ваших контроллеров A и B (будь то UIViewController, UITableViewController или UINavigationController), но если вы следуете следующему шаблону, он должен работать.

  • В пустой раскадровке вставьте UINavigationController. Это приведет к двум окнам в раскадровку, связанную со стрелкой (segue). Правилом должен быть контроллер A.

  • В A, допустим, вы добавляете кнопку. Кнопка нажимает B в стек навигационной панели.

  • Затем вы добавляете второй контроллер B и перетаскиваете с кнопки контроллера A на контроллер B и выбираете «push» из выпадающего меню.

Если вы используете только UIViewController (A) и нажмите B, нет navigationController заботиться о выскакивают.

Надеюсь, что помогите.

+1

Нет необходимости перетаскивать в UINavigationController и беспорядок вокруг настройки, если у вас уже есть UIViewController. Вместо этого выберите UIViewController и перейдите в меню «Редактор» и выберите «Вставить вход» и выберите «UINavigationViewController», и все это настроит для вас. –

+0

@ Скотт Шервуд. Это хороший трюк. Я этого не знал. Но один вопрос. Когда я делаю это в раскадровке, Xcode автоматически превращает мой viewController в navController и viewController, связанный с segue. Так разве это не одно и то же? – Canopus

+0

Да, это точно то же самое, что он немного сократил. Связь между navController и viewController называется отношением и немного отличается от Segue, но в принципе то, что вам осталось, такое же, как вы предполагали. –

Смежные вопросы