UITabBarController деформирует панель навигации при выходе из системы и обратно - PullRequest
0 голосов
/ 29 ноября 2018

Я создаю приложение для социальных сетей, которое позволяет пользователям входить в систему. При входе в систему я бы хотел, чтобы пользователи переходили на главную страницу с TabBarController внизу и панелью навигации вверху.Я создал TabBar программно и установил его как мой rootviewcontroller внутри моего делегата приложений.Когда я создаю свое приложение, оно работает нормально и показывает контроллер представления с панелью вкладок и панелью навигации вверху.This is how my view is supposed to look when I sign out and back in.

Однако, если я выйду из системы и снова войду в нее, это деформирует вид, заставляя навигационную панель исчезнуть и нажав мою панель поиска вниз. When I log out and back in

Я оставлю картинки, чтобы объяснить.Я попытался изменить свои контроллеры navcontrollers для входа в систему на

   let mainController = UINavigationController(rootViewController: CustomTabBarController())

        self.present(mainController, animated: true, completion: nil)

на

 let mainController = UINavigationController(rootViewController: mainViewController())

        self.present(mainController, animated: true, completion: nil)

, и когда я сделаю это изменение, контроллер tabBar исчезнет.tabbar disappears

Мой контроллер основного вида настроен как UIViewController, а мой TabBarCode выглядит следующим образом.

class CustomTabBarController: UITabBarController {


override func viewDidLoad() {
    super.viewDidLoad()



    self.tabBar.barTintColor = GREEN_Theme
    self.tabBar.isTranslucent = true
    self.tabBar.tintColor = .white

    let mainController = UINavigationController(rootViewController: mainViewController())
    mainController.tabBarItem.title = "Odd Jobs"
    mainController.tabBarItem.image = UIImage(named: "job-search")
    let settingsController = UINavigationController(rootViewController: SettingsViewController())
    settingsController.tabBarItem.title = "Settings"
    settingsController.tabBarItem.image = UIImage(named: "settings")
    let notificationsController = UINavigationController(rootViewController: notificationsViewController())
    notificationsController.tabBarItem.title = "Notifications"
    notificationsController.tabBarItem.image = UIImage(named: "notification")
    let messagesController = UINavigationController(rootViewController: MessagesController())
    messagesController.tabBarItem.title = "Messages"
    messagesController.tabBarItem.image = UIImage(named: "chat")
    let historyController = UINavigationController(rootViewController: jobhistoryViewController())
    historyController.tabBarItem.title = "Job History"
    historyController.tabBarItem.image = UIImage(named: "history")


    viewControllers = [historyController, notificationsController, mainController, messagesController, settingsController]
    self.selectedIndex = 2
    return

}

Моя цель - заставить пользователей войти в систему и увидеть панель вкладок с панелью навигации.Я что-то упустил или не реализовал должным образом?

...