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

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

UIにストーリーボードを使用していて、タブバー項目の1つに通知番号を設定したいのですが、何か問題があるようです。

このコードの何が問題になっていますか、タブバーアイテムに通知が表示されないのはなぜですか?

前もって感謝します。

答え:

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

1 に答える 1

4

なぜすべてが1行になっているのですか?

それをいくつかの小さなステップに分割し、ステップ1にブレークポイントを設定し、コードチェックをウォークスルーして、各行で期待どおりのことが起こっているかどうかを確認します。

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

プロパティの1つは、nil通常、「警告やエラーなしでメソッドが失敗する理由」タイプのバグの原因であると思われます。

于 2012-10-06T23:27:35.440 に答える