从单独的导航控制器切换 TabBar 项目

Switch TabBar Item from separate Navigation Controller

在我的应用程序中,我有 TabBar Controller 和 Navigation Controller 以及一个 View Controller,它们彼此没有连接。

我在我的应用程序中将 TabBar 控制器用作根 vc,并将其他导航控制器用作滑入 TabBar 控制器顶部的侧边菜单。为了制作菜单,我使用了这个 repo - SideMenu

问题:如何从我的菜单中切换 TabBar 项目?简单地在 MenuViewController 中调用 tabBarController?.selectedIndex = 1 什么都不做。

到目前为止我做了什么:

在我的应用程序中,我有 MainTabBarController,它几乎总是 root。我使用静态变量访问共享变量。

class MainTabBarController: UITabBarController, UITabBarControllerDelegate {
    // MARK: - Variables
    public static var shared: MainTabBarController? {
        set {
            UIApplication.shared.window.rootViewController = newValue
        }

        get {
            guard let mainTabBarController = UIApplication.shared.window.rootViewController as? MainTabBarController else { return nil }

            return mainTabBarController
        }
    }
}

所以我可以随时更改。

MainTabBarController.shared?.selectedIndex = 0

只需在 MenuViewController 中调用 tabBarController?.selectedIndex = 1 什么都不做。

这应该行不通,因为您的层次结构。