Полагаю, что ваша проблема здесь связана с неправильным использованием UIViewController и UITabBarController.
UITabBarController существует как контейнер для нескольких контроллеров представления. Скорее всего, оно не должно сдерживаться. Он предназначен для того, чтобы находиться на вершине иерархии контроллера представления. Итак, первый шаг, вероятно, состоит в том, чтобы перестроить ваше приложение так, чтобы UITabBarController больше не находился под чем-либо еще, и посмотреть, исправит ли это вас.
После этого подход slev для представления вида входа в систему звучит как правильный.