未设置标签栏控制器徽章?
Tab Bar Controller badge not being set?
我正在尝试从标签栏控制器 class 设置标签栏项目的徽章,但它不起作用。
首先,我通过将其拖出到情节提要中来创建 TabBarController
。
然后,我创建三个 ViewControllers
并将它们连接到 TabBarController
。
然后我创建了四个class,第一个是TabBarController
class,其余的是ViewControllerClasses
。
然后,我 link 将 classes 添加到故事板元素,例如:
然后,在 TabBarViewController
class 中,我将这段代码添加到 ViewDidLoad
方法中。
- (void)viewDidLoad {
[super viewDidLoad];
[[[[[self tabBarController] tabBar] items] objectAtIndex:1]
setBadgeValue:@"1"];
}
现在,当我 运行 应用程序时,我希望第二个标签栏项目有一个值为 @"1"
的徽章,但是,标签栏的 none 显示有徽章吗?!
我的问题是我想更新其中一个标签栏项目的徽章,但它不起作用。 此外,重要的是我可以将标签栏徽章的值设置为 未加载 的视图控制器的标签栏项目,这部分对于我的应用程序可以工作了。
那么为什么这不起作用,我怎样才能让它起作用?
[[[[self tabBarController] tabBar] items] objectAtIndex:1]
因为self是一个UITabBarViewController
,所以不需要再获取tabBarController。使用下面的代码获取 UITabBarItem
[[[self tabBar] items] objectAtIndex:1]
我正在尝试从标签栏控制器 class 设置标签栏项目的徽章,但它不起作用。
首先,我通过将其拖出到情节提要中来创建 TabBarController
。
然后,我创建三个 ViewControllers
并将它们连接到 TabBarController
。
然后我创建了四个class,第一个是TabBarController
class,其余的是ViewControllerClasses
。
然后,我 link 将 classes 添加到故事板元素,例如:
然后,在 TabBarViewController
class 中,我将这段代码添加到 ViewDidLoad
方法中。
- (void)viewDidLoad {
[super viewDidLoad];
[[[[[self tabBarController] tabBar] items] objectAtIndex:1]
setBadgeValue:@"1"];
}
现在,当我 运行 应用程序时,我希望第二个标签栏项目有一个值为 @"1"
的徽章,但是,标签栏的 none 显示有徽章吗?!
我的问题是我想更新其中一个标签栏项目的徽章,但它不起作用。 此外,重要的是我可以将标签栏徽章的值设置为 未加载 的视图控制器的标签栏项目,这部分对于我的应用程序可以工作了。
那么为什么这不起作用,我怎样才能让它起作用?
[[[[self tabBarController] tabBar] items] objectAtIndex:1]
因为self是一个UITabBarViewController
,所以不需要再获取tabBarController。使用下面的代码获取 UITabBarItem
[[[self tabBar] items] objectAtIndex:1]