Badge count is managed from Server End. For that your backend has to send specific JSON Payload in Push.
{
"aps" : {
"alert" : {
"title" : "Game Request",
"body" : "Bob wants to play poker",
"action-loc-key" : "PLAY"
},
"badge" : 5
},
"acme1" : "bar",
"acme2" : [ "bang", "whiz" ]
}
Something like above, in which badge value is 5.
When this push will come on iOS it will automatically show this count on App's Badge.
Then next question might be, How to update the Badge then.
On app launch, just reset the App badge using
[[UIApplication sharedApplication]setApplicationIconBadgeNumber:0];
at the same time also call a new Webservice to update 0
as badge count on server side so that on next Push Webservice can send 1
.Also ask your backedn Guy to increment this count on very push. However this depends on your App cases. The one that i just explained is by considering that on app launch all notifications has to be considered as Read.