2016-06-02 6 views
-1

У меня странная проблема с навигационным стеклом.Swift - self.navigationController is nil

Обзор: У меня есть три контроллера просмотра (например AViewController, BViewController, CViewController) с двумя возможностями навигации:

  1. AViewController в CViewController.
  2. AViewController в BViewController к CViewController, или

И AViewController встраивается в UINavigationController. Я использую segues для переходов, все они определены в раскадровке. И все сегменты имеют тип Show (e.g. Push). И все переходы выполняются с использованием метода performSegueWithIdentifier(String, AnyObject?).

Задача: При первом переходе все работает нормально. Все означает self.navigationController.popViewController(animated) в CViewController отлично работает, чтобы вернуться к AViewController. Но со вторым переходом self.navigationController - nil в CViewController, хотя это не nil в BViewController.

Итак, где я ошибаюсь?

+2

Пожалуйста, покажите свой код и, возможно, снимок экрана вашего раскадровки. – Scriptable

+0

О, я буду, всякий раз, когда я получу время. –

+0

У меня была такая же проблема, когда я использовал контроллеры представления слайдов в своем приложении, обмен образцом поможет мне разобраться в конкретной проблеме и помочь вам. – swiftBoy

ответ

0

Я не знаю, как я создал Segue, но я воссоздал Segue от BViewController до CViewController и все работало нормально.

0

Если вы используете раскадровку, вы можете использовать навигационный контроллер вместо пользовательских сегментов. Поэтому вам не нужно будет программировать навигацию. UINavigationControler автоматически устанавливает навигацию назад или вперед.

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