Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TabBar控制器(Swift)中项目的多种徽章颜色_Swift_Uitabbarcontroller_Ios13_Badge - Fatal编程技术网

TabBar控制器(Swift)中项目的多种徽章颜色

TabBar控制器(Swift)中项目的多种徽章颜色,swift,uitabbarcontroller,ios13,badge,Swift,Uitabbarcontroller,Ios13,Badge,我有一个带有四个选项卡的UITabBarController的应用程序。我一直试图在不同的标签上定制不同的徽章(背景)颜色,但未能实现每个标签的独特定制 我正在努力实现的目标: 打开应用程序,默认情况下选择第二个选项卡 通知在第三个选项卡中出现,在第三个选项卡上呈现徽章,并将徽章背景颜色显示为蓝色 在整个过程中,其他标签上的任何徽章都应保持红色 选项卡栏似乎只会查看当前所选选项卡中tabBarItem的标准外观,例如,如果我将选项卡3的badgeBackgroundColor设置为蓝色,则当

我有一个带有四个选项卡的UITabBarController的应用程序。我一直试图在不同的标签上定制不同的徽章(背景)颜色,但未能实现每个标签的独特定制

我正在努力实现的目标:

  • 打开应用程序,默认情况下选择第二个选项卡
  • 通知在第三个选项卡中出现,在第三个选项卡上呈现徽章,并将徽章背景颜色显示为蓝色
  • 在整个过程中,其他标签上的任何徽章都应保持红色
选项卡栏似乎只会查看当前所选选项卡中tabBarItem的标准外观,例如,如果我将选项卡3的badgeBackgroundColor设置为蓝色,则当我选择该选项卡时,整个选项卡栏上的徽章将变为蓝色。然后,当我切换到任何其他选项卡时,所有选项卡栏项目上的徽章将采用新选择的选项卡上的badgeBackgroundColor

我还尝试使用tabBarItem.badgeColor,但这似乎没有任何效果


tabItem的标准外观是否会始终影响所有其他选项卡?有没有一种方法可以在整个应用程序中唯一地自定义每个选项卡项的badgeBackgroundColor?

无法回答后两个问题,但要回答第一个问题:

要初始选择第二个选项卡栏,请将选项卡栏连接到自定义UITableController,并使用选项卡栏控制器的
selectedIndex
设置初始选项卡,如下所示:

class TabBarController: UITabBarController {

override func viewDidLoad() {
    super.viewDidLoad()
    //The second tab is the first to show
     self.selectedIndex = 1
}
你可以这样尝试:

  • 第一个问题
selectedIndex=2
  • 第二个问题
tabBar.selectedItem?.badgeColor=.red