0
-(void)applicationDidFinishLaunching:(UIApplication *)application{

    [[[self.window.rootViewController.tabBarController.viewControllers objectAtIndex:1] tabBarItem]setBadgeValue:@"1"];
}

我将情节提要用于 UI,并想为其中一个标签栏项目设置通知编号,但似乎我做错了什么。

这段代码有什么问题,为什么我在标签栏项目中看不到通知?

提前致谢。

回答:

FROM APPDELEGATE:
     UITabBarController *tabController = self.window.rootViewController;
        UIViewController *requiredViewController = [tabController.viewControllers objectAtIndex:1];
        UITabBarItem *item = requiredViewController.tabBarItem;
        [item setBadgeValue:@"1"];
4

1 回答 1

4

为什么全部在一条线上?

将其分解为几个较小的步骤,在第一步设置断点并遍历代码检查以查看每一行是否发生了您期望的情况。

UIViewController *rootController = self.window.rootViewController;
UITabBarController *tabController = rootController.tabBarController;
UIViewController *requiredViewController = [tabController.viewControllers objectAtIndex:1];
UITabBarItem *item = requiredViewController.tabBarItem;
[item setBadgeValue:@"1"];

我怀疑您的属性之一是nil- 这通常是“为什么我的方法在没有任何警告或错误的情况下失败”类型错误的原因。

于 2012-10-06T23:27:35.440 回答