Развернуть переход между двумя контроллерами представления назад и вперед Swift

Я хочу создать приложение с двумя контроллерами представления (VC1 и VC2), каждый из которых содержит таймер. Я хотел бы, чтобы мой пользователь мог переключаться между этими представлениями и разрешать запуск каждого таймера.

В настоящее время мне удалось выполнить раскрутку либо на VC1, либо на VC2 (в зависимости от того, что я установил в качестве начального контроллера представления), хотя у меня возникли трудности с успешной раскруткой вперед и назад (т. е. с VC1 на VC2, обратно на VC1 и т. д.)

Я полагал, что мог бы выполнить это, первоначально перейдя от VC1 к VC2 с помощью обычного перехода (от нажатия кнопки), и хотя он вернется обратно к VC1, я не могу заставить свое приложение вернуться обратно к VC2 отсюда.

Два моих простых контроллера представления таймера

Вот код (для VC1):

@IBAction func unwindToSecondView(_ sender: UISwipeGestureRecognizer) 
{
    performSegue(withIdentifier: "unwindToSecond", sender: self)    
}

@IBAction func backFromSecondView(segue: UIStoryboardSegue) {
}

И для ВК2:

@IBAction func segueToFirstView(_ sender: UISwipeGestureRecognizer)
{
    performSegue(withIdentifier: "unwindToFirst", sender: self)
}

@IBAction func backFromFirstView(segue: UIStoryboardSegue) {
}

Я действительно новичок в быстром и нашел здесь пару интересных источников (Как раскрутить два контроллера представления и Swift Timer ( ) не будет обновлять метку после переключения между представлениями), но в остальном не добился большого успеха - был бы очень признателен за любые советы или идеи для различных реализаций. Спасибо!!


person Anonymous    schedule 04.03.2017    source источник
comment
Думайте о стандартном переходе как о переходе вперед, а о переходе с раскруткой — как о переходе назад. Когда вы переходите от vc1 к vc2, вы делаете шаг вперед, когда вы возвращаетесь к vc1, вы делаете шаг назад. Теперь нет смысла пытаться сделать еще один шаг назад и в конечном итоге двигаться вперед, что вы и пытаетесь сделать. Простейшим подходом может быть UITabBarController, в противном случае вы собираетесь создать свой собственный контроллер представления контейнера и переключать содержимое.   -  person Paulw11    schedule 05.03.2017


Ответы (3)


Apple опубликовала хороший пример для этого. Я рекомендую всегда проверять сайты Apple Developer Guide и исходный код. Ваш ответ ниже. https://developer.apple.com/library/content/samplecode/SegueCatalog/Introduction/Intro.html

person Durul Dalkanat    schedule 05.03.2017

Я нашел этот учебник полезным.

работа с-unwind-segues -программно-быстро

person Community    schedule 19.03.2017

segue из AB и из BA вы можете просто dismiss() и если вы хотите отправить данные обратно из BA, вы можете создать delegate.

person K-2SO    schedule 04.03.2017