Как перейти к другому viewController, который использует тот же корневой контроллер, что и текущий? - PullRequest
0 голосов
/ 11 мая 2018

У меня есть 3 viewControllers: A, B и C.
A имеет переход к B и A также имеет переход к C.

Если я в настоящее время в C, как я могу перейти к B?

Примечание; Мне нужно держать A активным, потому что, как только я нахожусь в B, мне нужно уметь чтобы вернуться к А.

Следующее решение было бы неплохо, если бы я мог развернуться с C на A, а затем нажать на B, не показывая A в процессе, но я не могу заставить это работать, и никто не предоставил решение.

Цепочка двух сегментов, чтобы они выглядели как один

Примечание; Я не использую UINavigationController. Я пробовал просто нажимая от C до B, но тогда я не могу освободить C. Вызов раскручивать на C в любой момент во время этого процесса дает странное поведение где A может появиться на экране в какой-то момент.

У кого-нибудь есть решение этой проблемы?

1 Ответ

0 голосов
/ 11 мая 2018

Существует множество способов выполнить то, что вы хотите.

Я хотел бы сделать что-то действительно простое: добавить развернуть segue (как было описано выше, как добавить один), чтобы выйти на первый A vc, и добавить custom segue * 1006. * (независимо от того, какой именно) между B и C (который вы просто создаете с раскадровкой).

Вы начинаете с А, затем:

  • Если вы идете к B, вы можете вернуться, используя self.dismiss, используя вашу выходную последовательность.
  • Если вы идете к C, вы можете вернуться к A таким же образом, или вы можете перейти к B.
  • Когда вы находитесь в B (от: A до C, от C до B), вы можете вернуться к C, используя self.dismiss, или вы можете вернуться к A, используя выходную очередь.

Чтобы добавить unwind segue, вы должны добавить функцию к вашему первому VC типа:

@IBAction func unwindToA(segue: UIStoryboardSegue)

Затем в раскадровке, когда вы создаете свой переход на контроллере вида B (используя control + drag), начинайте перетаскивать значок VC (вверху экрана) на значок выхода. Затем вы увидите новую секцию unwindToA, которая вернет вас к вашему первому VC: A.

You can see theses icons here (on the top of the screen)

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

...