У меня есть контроллер вида (в контроллере навигации) A, который переходит в режим просмотра контроллера B, а контроллер просмотра C также переходит к B (A -> B < - С). Контроллер просмотра B используется для выбора значения, которое передается обратно на A или C, но если я нажму «Отменить» или «Готово», он использует разматывание, чтобы вернуться к одному контроллеру, в зависимости от того, что было последним.Unwind segue - вернитесь к вызывающему виду, когда его несколько видов назовут
ответ
Вы можете отключить повторную отступку в зависимости от того, какой режим управления просмотром был инициирован. Все, что вам нужно сделать, это реализовать один и тот же метод, который вы возвращаете в всех viewControllers, которые SEGUE к ViewController В.
Таким образом, в ViewController А и ViewController C, реализовать следующий метод:
@IBAction func backFromB(segue: UIStoryboardSegue) {
print("Back from B")
}
Затем, когда вы управления Drag-с вашего Отмена кнопку в ViewController B к Выход значок в верхней части ViewController выберите backFromB
из всплывающего меню.
Затем, когда вы запустите приложение и нажмите Отменить в ViewController B, вы будете возвращаться к любой ViewController А или ViewController С (в зависимости от того один segued к Б). Это даже работает, если один из них является Show (Push), а другой - Модальный.
ли вы что два различных раскрутку перетекает для контроллеров A и C? –
У вас есть Aaron более подробную информацию? Может быть, скриншоты или код. Трудно понять, чего вы хотите. –