For Badge on UIButton You can use some custom library available here,
And to set/ get your Application badge you can use Method,
[UIApplication sharedApplication]setApplicationIconBadgeNumber:1]
EDIT
The issue I'm having is when the app is running in the background, the badge doesn't show on the button, but shows on the springboard.
If your app is in Background Badge will show on App icon, if you are using push notification than badge value set from payload,
{"aps": {"alert":"content test","badge":1,"sound":"default"}}
or you are using localnotification badge value set in applicationIconBadgeNumber
property of UILocalNotification ,i.e.
notification.applicationIconBadgeNumber=1;
So if your app in background you have two delegate methods for different notifications,
So implement that delegate methods Local notification didReceiveLocalNotification:
and didReceiveRemoteNotification:
for Push notification.
So please refer Apple Document before implementing.