Я хотел бы заменить ViewController (такой же, как startactivity & отделки или window.location.replace)эквивалент startactivity & finish в ios?
Как заменить ViewController вместо толчка?
Я хотел бы заменить ViewController (такой же, как startactivity & отделки или window.location.replace)эквивалент startactivity & finish в ios?
Как заменить ViewController вместо толчка?
Существует несколько способов реализовать это на основе ограничений вашего контроллера. Если у вас есть текущий контроллер представления на вершине стека в 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
Не очень гибкими, но только один способ сделать это.
спасибо, хорошо иметь много вариантов! – eugene