Требуемое поведение объясняется в документации к быстрому обработчику UIApplicationDelegate
здесь . Подводя итог, вам нужно проверить параметры запуска в willFinishLaunching
или didFinishLaunching
, а затем решить, что делать в зависимости от того, что вы видите.
Проблема, с которой вы столкнулись, может быть вызвана тем, как вы настраиваете представление, которое впервые отображается в вашем приложении. Возможно, вы устанавливаете ViewController на тот, который вложен в контроллер представления вкладок, а не устанавливаете его в качестве контроллера вкладок, а затем сообщаете контроллеру вкладок, какие из его представлений отображать.
Это просто предположение, вам нужно поделиться большим кодом, чтобы получить более конкретный ответ.
Обновление: Теперь, когда вы решили проблему с правильным отображением вкладок, вы хотите, чтобы это представление отображало другое представление поверх него.
Документация для UITabBarController
дает некоторые советы о том, как это сделать, в разделе «Представления контроллера панели вкладок». Один из способов сделать то, что вы пытаетесь сделать, - это настроить UIViewControllers
таким образом, чтобы каждая вкладка имела контроллер навигации в качестве корня. Таким образом, вы можете вставить любой желаемый контроллер в представление так, чтобы пользователь мог его распознать.
UINavigationController - Controller 1 -> push new controller
/
TBC - UINavigationController - Controller 2 -> push new controller
\
UINavigationController - Controller 3 -> push new controller
В качестве альтернативы, если у вас есть пользовательский переход, который вы хотите использовать, вы можете продолжить то, что вы делаете с myTabBar?.selectedViewController.performSegue(withIdentifier:sender:)