iPhone Developer Tips Visitor Stats: 122,631 Pageviews and 90,229 visitors in the past 30 days.
|
Several native applications on the iPhone use application badges as an indicator of new messages, think email and SMS. Creating badges is quite straightforward and is nothing more than a method call, passing in the desired number to display.
The image below shows how a badge may look when applied to your application. The code to create the badge is below the image.

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:99];
As one would expect, the iPhone does limit the number of digits it will display – see the code and image that follow:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:123456];

One nice feature that would be welcome is to have a means to create a badge with text. I’ve seen a number of references to using an undocumented method (see below), however, I was unable to get the code to work.
[[UIApplication sharedApplication] setApplicationBadge:@"Beer"];
Although you can set a badge for an application icon, I believe the real creative uses of this will evolve if/when Apple provides a means for an application to update the badge when the application is not running. For example, I am working on an application that needs to notify users that they are x number of days away from an upcoming event. It would be a nice feature of the application if one could glance at the icon and see the current count, versus having to start the application.
I’ll keep my fingers crossed…
Comments
6 Responses to “Using Application Badges”
Leave Comment
Hey John,
As someone who is new xcode thow would I pass a variable to the App Badge?
Thanks, Doug
Hi Doug,
You should be able to pass in any variable of type NSInteger.
NSInteger x = 99;
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:x];
John
Hi, can you show negative number? That way, temperature could be shown (for an online weather app)
Hi Bjørn,
Unfortunately, it looks like zero or any negative value removes the badge from the display.
Is it possible to use badges on a segmented control? We’re working on an app where one of the buttons opens a comments pane. I’d like to use a badge to display a count of new comments since last viewed. I’ve been told this isn’t possible.
Hey Nick,
You could achieve that by positioning a custom UIView with badge image and label over the segmented control or use the method setImage:forSegmentAtIndex: to set a custom image as the segments content. You could create the segment content as a custom UIView then render it as an image (checkout http://pastie.org/244916) then set that as the segment image. Maybe create a UIView subclass with a method that takes a comment number and returns a UIImage to set as the segment control content when the comment count changes?