默认选项卡未显示所选的第一个选项卡

Default tab not showing the first tab as selected

我为我的应用程序使用了自定义 UITabbar 因为我的应用程序需要 viewcontroller 而不是 uitabbarcontroller。在那里,我通过添加和删除第二个 viewcontroller 作为子视图来显示 viewcontroller。 直到这一切都很好,但是标签栏项目没有以突出显示的状态显示第一个标签栏项目,而是在选择第二个标签栏项目之后(从这个标签栏项目显示突出显示。)突出显示。

所以我尝试了一个解决方案:我添加了一个 bool 变量 "selected" 作为用户定义的运行时属性,这也失败了,因为即使在选择第二个标签栏后,第一个标签栏项目仍然突出显示。

我可以知道加载视图时显示默认选项卡突出显示的任何其他替代方法吗?

func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem){
        switch item.tag {
        case 1:
            if sampleTwo == nil {
                var storyboard = UIStoryboard(name: "Main", bundle: nil)
                sampleTwo = storyboard.instantiateViewController(withIdentifier: "liveeventsVC") as! LiveEventsViewController
            }
            sampleTwo?.view.removeFromSuperview()

            sampleTwo?.removeFromParentViewController()
            break
        case 2:
            if sampleTwo == nil {
                var storyboard = UIStoryboard(name: "Main", bundle: nil)
                sampleTwo = storyboard.instantiateViewController(withIdentifier: "liveeventsVC") as! LiveEventsViewController
            }
            self.view.insertSubview(sampleTwo!.view!, belowSubview: self.bidLiveTabbar)

            self.addChildViewController(sampleTwo!)
            break
        default:
            break
        }
    }

如何在自定义标签栏中显示加载屏幕时选择的默认标签?

IBOutlet weak var tabBar:UITabBar!//and connect this property to the UITabBar in Interface Builder


override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated)      

    if let items = tabBar!.items  {
            for item in items {
                if item.title == "My Tab Title" {
                    tabBar.selectedItem = item;
                }
            }
        }     
}

如果所有选项卡都有一个唯一的标题,这是正常的。