сокета, который получает данные с сервера и я хочу, чтобы при определенных данных у меня открывался определенный экран.
пользовался всегда instantiateViewController, но он не работает теперь, потому что это просто класс, а не viewcontroller в иерархии storyboard
как можно реализовать переходы из обычного класса по экранам?
или может какие-то другие реализации есть?
Нужно получить доступ к текущему navigationcontroller. К примеру получить к нему доступ можно через AppDelegate https://stackoverflow.com/questions/25256353/swift-pushviewcontroller-from-appdelegate-rootviewcontroller-navigationcontro?rq=1
вот
Про instantinateViewController что то странно сказано, в общем - это создаёт инстанс контроллера Про остальное, вроде самый простой вариант - сделай coordinator он должен знать свой uinavigationController, к нему как то привязать сокет (через делегирование), и пускай он (метод сокета) дергает self.coordinator.showScreen, А координатор имеет метод func showScreen() { Let vc = storyboard.instantinateViewController.... self.navigationController.push(vc) } В общем почитать про coordinator надо Вроде самый простой вариант
Странноватый кейс
Обсуждают сегодня