Панель вкладок не отображается на домашней странице после входа в систему - PullRequest
2 голосов
/ 21 февраля 2020

Я ввел логин firebase и хочу показать мою домашнюю страницу с функцией, моя проблема в том, что при отображении домашней страницы она не будет отображаться на панели вкладок, а при отображении панели вкладок в качестве начальной V C она отображается пустой , но когда я установлю контроллер панели вкладок как начальный V C в настройках, он покажет панель вкладок, но в обход входа в систему, как я могу заставить свою домашнюю страницу отображать панель вкладок в моей функции?

Full Storyboard

display home view with no tab bar

When using the tab view as inital VC

          @IBAction func LoginButtonTapped(_ sender: Any) {

            // validate feilds still to impliment


                //if all feilds valid do below
                let email = EmailFeild.text!.trimmingCharacters(in: .whitespacesAndNewlines)
                let password = PasswordFeild.text!.trimmingCharacters(in: .whitespacesAndNewlines)

                // sign in user
                Auth.auth().signIn(withEmail: email, password: password) { (result, error) in
                    if error != nil{
                        // sign in error
                        self.ErrorMsg.text = error!.localizedDescription
                        self.ErrorMsg.alpha = 1
                    }else{
                        // go to home screen
                        self.transitionHome()
                    }
                }
        }

        func transitionHome(){   
            let homeViewController =
            storyboard?.instantiateViewController(identifier: Constants.Storyboards.homeViewContrl) as? HomeViewController
            view.window?.rootViewController = homeViewController
            view.window?.makeKeyAndVisible()

мой Попытка установить панель вкладок как root V C приводит к черному экрану, но когда я устанавливаю его как начальный V C и пропускаю логин, на главном экране отображается панель вкладок

// let tabViewController =
// storyboard?.instantiateViewController(identifier: Constants.Storyboards.homeNav) as? 
        //MainTabBarController 
        //view.window?.rootViewController = tabViewController
        //view.window?.makeKeyAndVisible()
        } 
    }

1 Ответ

1 голос
/ 21 февраля 2020

Вам просто нужно добавить UITabBarController между ними, назначить его для Class свойства вашего TabController в раскадровке и установить его на root вместо непосредственного использования UIViewController. Ниже приведен фрагмент кода:

let tabViewController =
storyboard?.instantiateViewController(withIdentifier: "TabController") as? TabController
view.window?.rootViewController = tabViewController
view.window?.makeKeyAndVisible()

Он будет работать как положено !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...