代码之家  ›  专栏  ›  技术社区  ›  Fattaneh Talebi

在目标C的标签栏上设置徽章时崩溃

  •  0
  • Fattaneh Talebi  · 技术社区  · 8 年前

    这行代码崩溃了。如何检查标签项是否为零,然后设置徽章?

    [self.tabController.tabBar.items objectAtIndex:0].badgeValue = [NSString stringWithFormat:@"%i", num];
    

    ***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[\u ctnativelyphStorage tabBar]:发送到实例0x15029cfd0'的无法识别的选择器

    我用这行代码检查了一下,但没有解决问题。

    if (self.tabController.tabBar.items != nil)   { }
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   pnizzle    8 年前

    如果您在tab控制器出现或完全启动之前设置了badge值,那么索引0处还不会有任何内容。为了内存使用的目的,在表示时间到来之前,tab控制器不需要初始化所有内容。您可以保留对的每个实例的引用 UITabBarItem 并在上面设置徽章值。或者您必须等到调用viewDidAppear,确保所有uitabaritems都已完全实例化。。。