如何显示标签栏控制器?

How to show Tab Bar Controller?

我已经尝试了所有方法来将标签栏控制器放到 MainViewController 上,但似乎没有任何效果。

简单介绍一下应用程序的工作原理: 故事板条目是 AppContainerViewController,如果用户已登录,则 MainViewController 会按原样显示,但是我无法让 MainVC 成为 TabBar 控制器来显示用于用户导航到各个页面的选项卡栏。

我做错了什么?!

appcontainerviewcontroller

class AppContainerViewController: UIViewController {

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        AppManager.shared.appContainer = self
        AppManager.shared.showApp()
    }
}

import UIKit
import Firebase
import FirebaseDatabase
import FBSDKLoginKit

class AppManager {

    static let shared = AppManager()

    let storyboard = UIStoryboard(name: "Main", bundle: nil)

    var appContainer: AppContainerViewController!

    private init() {}

    func showApp() {

        var viewController: UIViewController

        if (Auth.auth().currentUser == nil) && (FBSDKAccessToken.current() == nil) {
            viewController = storyboard.instantiateViewController(withIdentifier: "LoginViewController")
        } else {
            viewController = storyboard.instantiateViewController(withIdentifier: "MainViewController")
        }

        appContainer.present(viewController, animated: true, completion: nil)
    }

    func logout() {
        let loginManager = FBSDKLoginManager()
        loginManager.logOut()

        try! Auth.auth().signOut()
        appContainer.presentedViewController?.dismiss(animated: true, completion: nil)
    }
}

主视图控制器

import UIKit
import Firebase
import FirebaseDatabase
import FBSDKShareKit

class MainViewController: UIViewController {

    @IBOutlet weak var name: UILabel!
    @IBOutlet weak var email: UILabel!

    @IBAction func logoutPressed(_ sender: Any) {
        AppManager.shared.logout()
    }

    @IBAction func fbSharePressed(_ sender: Any) {

        let content = FBSDKShareLinkContent()
        content.contentURL =  URL(string: "https://advice.com")
        content.quote = "Hey, I'm one step closer to getting into the college of my dreams with this app.  Download it and let's go together!"

        let dialog : FBSDKShareDialog = FBSDKShareDialog()
        dialog.fromViewController = self
        dialog.shareContent = content
        dialog.mode = FBSDKShareDialogMode.automatic
        dialog.show()
    }

    func userProfile() {

        guard let uid = Auth.auth().currentUser?.uid else { return }

        let ref = Database.database().reference()
        ref.child("users").child(uid).observeSingleEvent(of: .value, with: { (snapshot) in
            guard let dict = snapshot.value as? [String: Any] else { return }
            let user = CurrentUserProfile(uid: uid, dictionary: dict)
            self.name.text = user.name
            self.email.text = user.email
        }, withCancel: nil)
    }

    override func viewDidLoad() {        
        super.viewDidLoad()

        userProfile()
    }
}

鸡蛋在我脸上。我的故事板 ID 是错误的,通过故事板将 MainViewController 嵌入到 TabBarController 中,然后将 MainVC 的故事板 ID 应用于 TabBarController 就成功了。