2014-10-25 5 views

ответ

0

Существует несколько способов реализовать это на основе ограничений вашего контроллера. Если у вас есть текущий контроллер представления на вершине стека в UINavigationController, то ниже одно решение:

UINavigationController 
    -- root view controller 
    -- view controller 2 
    -- view controller 3 
    -- other view controllers in stack 
    -- view controller n - 1 
    -- view controller n 

Вы хотите заменить view controller n с другим контроллером вида (например).

Объявить делегата по классу view controller n, он установил view controller n - 1, чтобы согласовать этот делегат. Когда вы нажимаете view controller n, вы устанавливаете view controller n - 1 в его delegate.

Если вы хотите заменить view controller n, вы вызываете из него метод delegate, передавая необходимые параметры для создания нового контроллера вида. Затем внутри view controller n - 1 вы сообщите UINavigationController, чтобы выставить текущий контроллер верхнего уровня (view controller n) и нажать новый контроллер вида.

Еще одно решение - отправить уведомление UINavigationController для поп и push.

UINavigationController имеет несколько полезных методов, когда вы хотите изменить стек вид:

  • setViewControllers (другой один с анимацией парами также доступен)
  • popToViewController

Не очень гибкими, но только один способ сделать это.

+0

спасибо, хорошо иметь много вариантов! – eugene

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