1

私のアプリでは、tabBarアイテムのバッジ値がAppDelegate.m次のようにに設定されています。

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    ...
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UITabBarController *tabBarController = [storyboard instantiateViewControllerWithIdentifier:@"tabBarController"]; 
    [[tabBarController.tabBar.items objectAtIndex:4] setBadgeValue:@"1"];
    ...
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    ...
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UITabBarController *tabBarController = [storyboard instantiateViewControllerWithIdentifier:@"tabBarController"]; 
    [[tabBarController.tabBar.items objectAtIndex:4] setBadgeValue:@"2"];
    ...
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    ...
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UITabBarController *tabBarController = [storyboard instantiateViewControllerWithIdentifier:@"tabBarController"]; 
    [[tabBarController.tabBar.items objectAtIndex:4] setBadgeValue:@"3"];
    ...
}

問題は次のとおりです。バッジの値は常に「1」です。バッジの値が両方applicationWillEnterForeground:に設定され、表示されapplicationDidBecomeActive:ないのはなぜですか?にバッジの値を設定しなかった場合application: didFinishLaunchingWithOptions:、そこにバッジは表示されません。

4

2 に答える 2

3

UIApplicationDelegate プロトコルとさまざまな状態遷移について読む必要があります。applicationDidBecomeActive 遷移は、起動時には発生せず、電話で一連の状態変化が発生した場合にのみ発生します。

于 2012-07-24T12:13:25.187 に答える
2

@メノありがとうバディ。それは私のために働いた。

コピペするだけ

[[tabBarController.tabBar.items objectAtIndex:4] setBadgeValue:@"2"]; 

viewDidLoad

于 2012-11-08T14:03:39.297 に答える