Подтвердить что ты не робот

Разница между pushViewController и showViewController

Какая разница между методами pushViewController и showViewController в UINavigationController?

4b9b3361

Ответ 1

Показать segue можно использовать с контроллерами навигации, они просто нажимают viewControllers в вашем стеке.

Показать подробности segue имеет смысл только с контроллерами с раздельным просмотром. Поскольку у вас есть два монитора просмотра в вашем контроллере разделенного вида, вы можете:

перейдите в свой контроллер главного представления, представив (нажав, поскольку проект по умолчанию использует контроллеры viewVC как master VC) с Show segue показать детали в вашем контроллере подробного представления с Show detail segue В случае, если вы не знаете, как скомпонован контроллер вида Split:

**************++++++++++++++++++
*            *                 +
*            *                 +
*   master   *      detail     +
*    view    *       view      +
* controller *    controller   +
*            *                 +
*            *                 +
**************++++++++++++++++++

НО!

На iphones он представлен как это (исключение iPhone6 ​​+)

****************
*++++++++++++++*
*+            +*
*+            +*
*+            +*
*+   detail   +*
*+    view    +*
*+ controller +*
*+            +*
*+            +*
*++++++++++++++*
****************

Оба Showsegue и Show detail segue новы для iOS8 и Xcode6, они называются adaptative segues, они ведут себя по-разному в зависимости от типа устройства или ориентации.

В принципе, Show segue и Show detail segue, похоже, делают то же самое на iPhone, так как нет большого пространства для представления контроллеров представлений рядом.

Технически вы не представляете детали несколько раз, пока не вернетесь в свою навигацию. Контроллер главного представления должен выполнять Show detail segues, контроллер подробного представления должен быть листом в вашем дереве навигации (но не запрещено использовать navigationVC как лист;))

Надеюсь, что это поможет.

Ответ 2

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

Используя этот метод, диспетчер представлений не должен знать, встроен ли он в контроллер навигации или контроллер с открытым списком. Он вызывает тот же метод для обоих. Классы UISplitViewController и UINavigationController переопределяют этот метод и обрабатывают презентацию в соответствии с их дизайном. Например, контроллер навигации переопределяет этот метод и использует его для вставки vc в свой стек навигации.

form Документация Apple UIKit