Как перейти от NavigationController к TabBarController без использования Navbar в Swift 5? - PullRequest
0 голосов
/ 22 марта 2020

Я сейчас работаю над небольшим iOS проектом и столкнулся с проблемой:

Приложение запускается с Navigation View Controller для входа и регистрации. Когда регистрация будет завершена на последнем контроллере представления в этом NavigationV C, я хотел бы перенаправить на основной Tab Bar Controller.

См. Это изображение. Я надеюсь, что это может проиллюстрировать то, что я имел в виду выше: enter image description here

Проблема заключается в отсутствии перехода между левой и правой стороной. Все предложенные Segues от Xcode не работают. modal Segue не вариант, а show Segue использует NavBar NavigationController.

Надеюсь, у вас есть идеи, как решить эту проблему. Заранее благодарны за Вашу помощь. Хорошего дня!

Ответы [ 2 ]

1 голос
/ 22 марта 2020

Вы можете пересмотреть свою навигационную архитектуру.

Давайте назовем первый контроллер представления вашего tabBarController "HomeViewController"

Один из способов реализовать это:

  • всегда загружайте ваш tabBarController при запуске.
  • проверьте, вошел ли пользователь в метод viewDidLoad HomeViewController.
  • если пользователь не вошел в систему, представьте контроллер вида входа в систему ( с его собственным контроллером навигации).

Теперь вы представили процесс входа в систему поверх HomeViewController.

Когда регистрация будет завершена, отклоните loginViewController.

Теперь вы вернулись к HomeViewController, и регистрация завершена.

Кроме того, вы можете использовать NotificationCenter, чтобы предупредить HomeViewController, что пользователь только что вошел в систему, и выполнить любую начальную работу.

0 голосов
/ 22 марта 2020

Вы можете просто вернуться назад:

popToViewController:animated

ИЛИ

Объектив C:

[self.navigationController popToRootViewControllerAnimated:YES]

Swift:

self.navigationController?.dismiss(animated: true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...