iOS13 tabBar bug

* 在 iOS13 中,设置好的 tabBar 选中颜色 push 后 pop 回来(严格说是页面消失在出现:包括 modal 一个控制器),变成系统默认蓝色

* 自定义控制器继承于 UIViewController

* 应用中所有的视图都继承自该自定义控制器

* 在该自定义控制器的 viewWillAppear 中,通过如下代码恢复 tabBar 选中颜色

```swift

override func viewWillAppear(_ animated: Bool) {

    super.viewWillAppear(animated)


    if #available(iOS 13.0, *) {

        let appearance = UITabBarAppearance()

        // 设置未被选中的颜色

        appearance.stackedLayoutAppearance.normal.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.getColorFromRgba("7a7e82")]

        // 设置被选中时的颜色

        appearance.stackedLayoutAppearance.selected.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.getColorFromRgba("f39800")]

        navigationController?.tabBarController?.tabBar.standardAppearance = appearance

    } else {

        // Fallback on earlier versions

    }

}

```

你可能感兴趣的:(iOS13 tabBar bug)