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

    }

}

```

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容