这个问题可能是由于 Android 和 iOS 的默认 shell item 选中方式不同所致。
为了解决这个问题,您可以通过编写以下代码来为 iOS 设备设置选中的初始 shell item:
if #available(iOS 13.0, *) {
let tabBar = UITabBarAppearance()
tabBar.configureWithDefaultBackground()
tabBar.shadowImage = UIImage()
tabBar.shadowColor = .clear
tabBar.backgroundColor = .white
tabBar.selectedItemTintColor = .black
tabBar.selectionIndicatorTintColor = .black
self.tabBarController?.tabBar.standardAppearance = tabBar
self.tabBarController?.tabBar.scrollEdgeAppearance = tabBar
} else {
// Fallback on earlier versions
self.tabBarController?.tabBar.shadowImage = UIImage()
self.tabBarController?.tabBar.shadowColor = UIColor.clear
self.tabBarController?.tabBar.tintColor = UIColor.black
self.tabBarController?.tabBar.backgroundImage = UIImage()
}
self.tabBarController?.selectedIndex = 0
这段 Swift 代码中使用了 UITabBarAppearance
类来配置标签栏的外观,然后将其应用于 iOS 设备。最后,使用 selectedIndex
属性将初始 shell item 设置为索引为0的项目。
请注意,如果您的应用程序在较旧的 iOS 版本中运行,则需要考虑回退到更旧的 API。在这种情况下,您可以在上面的代码的 else 部分中添加旧的 API 调用。