How to set badge value in Tab bar?
ios, objective-c, uitabbar, xml
Solution
Let me tell you the simplest way to set badge value :
[[self navigationController] tabBarItem].badgeValue = @"YourBadgeValue";
Problem
i have to read datas from xml and have to display values in view controller. am using tab barcontroller . where i have to read xml data and have to display it in tab bar as badge. here is my controller code. ``` -(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict { if([elementName isEqualToString:@"Event"]) { //Initialize the array. rssOutputData = [[NSMutableArray alloc] init]; mycount = [attributeDict objectForKey:@"count"]; NSLog(@"Reading count value :%@",mycount); } else if([elementName isEqualToString:@"eventdashboard"]) { //Initialize the book. aEvent = [[Eventlist alloc] init]; //Extract the attribute here. aEvent.id = [[attributeDict objectForKey:@"userid"] integerValue]; NSLog(@"Reading id value :%d", aEvent.id); } NSLog(@"Processing Element: %@", elementName); } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { if(!nodecontent) nodecontent = [[NSMutableString alloc] initWithString:string];else [nodecontent appendString:string]; NSLog(@"Processing Value: %@", nodecontent); } - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if([elementName isEqualToString:@"Event"]) return; if([elementName isEqualToString:@"eventdashboard"]) { [rssOutputData addObject:aEvent]; [aEvent release]; aEvent= nil; } else [aEvent setValue:nodecontent forKey:elementName]; [nodecontent release]; nodecontent = nil; } - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg2.jpeg"]]; NSLog(@"%d",memberid); myid = [SingleTonClass sinlgeTon].memberIdOne; NSString *post =[[NSString alloc] initWithFormat:@"userid=%d",myid]; NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; NSURL *url = [NSURL URLWithString:@"http://journalonline.in/cfts/dashboards/dashboard?"]; NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url]; // [theRequest addRequestHeader:@"Content-Type" value:@"application/xml"]; [theRequest setHTTPMethod:@"POST"]; [theRequest setValue:@"application/xml" forHTTPHeaderField:@"Accept"]; [theRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [theRequest setValue:postLength forHTTPHeaderField:@"Content-Length"]; [theRequest setHTTPBody:postData]; NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; if( theConnection ) { webData = [[NSMutableData data] retain]; NSLog(@"%@",webData); } } -(void)viewWillAppear:(BOOL)animated{ [tblView reloadData]; } -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { [webData setLength: 0]; } -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [webData appendData:data]; } -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { [connection release]; [webData release]; } -(void)connectionDidFinishLoading:(NSURLConnection *)connection { eventarray = [[NSMutableArray alloc]init]; xmlParserObject = [[NSXMLParser alloc] initWithData:webData]; [xmlParserObject setDelegate:self]; [xmlParserObject parse]; for (int i =0; i<[rssOutputData count]; i++) { Eventlist *log = [rssOutputData objectAtIndex:i]; eventid = log.id; NSLog(@"%d",eventid); Invit = log.invitationdet; NSLog(@"%@",Invit); [eventarray addObject:log]; } [connection release]; [tblView reloadData]; } -(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ NSString * segueIdentifier = [segue identifier]; if([segueIdentifier isEqualToString:@"MainEventList"]){ UINavigationController *nav = [segue destinationViewController]; MaineventListController *MVC = (MaineventListController *)nav.topViewController; MVC.memberid1 = [SingleTonClass sinlgeTon].memberIdOne; NSLog(@"%d",MVC.memberid1); } if ([segue.identifier isEqualToString:@"EventListDetail"]) { NSIndexPath *indexPath = [tblView indexPathForSelectedRow]; [[SingleTonClass sinlgeTon] addObjectsColorArray:[NSString stringWithFormat:@"%d",indexPath.row]]; MainEventDetailController *destViewController = segue.destinationViewController; MainEvent *aEvent1 = [eventarray objectAtIndex:indexPath.row]; destViewController.eveID = aEvent1.id; destViewController.usrid = [SingleTonClass sinlgeTon].memberIdOne; } } -(void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return [eventarray count]; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if (section == 0) return [eventarray count]; if (section == 1) return 1; return 0; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"eventCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; if(indexPath.section == 0) { Eventlist *msglist = [eventarray objectAtIndex:indexPath.row]; cell.textLabel.text = msglist.invitationdet; NSLog(@"Array %@",[SingleTonClass sinlgeTon].colorArray); NSInteger stat=msglist.readflag; if([[SingleTonClass sinlgeTon].colorArray containsObject:[NSString stringWithFormat:@"%d",indexPath.row]] || stat == 1 ) { NSInteger stat1 = msglist.responseflag; if(stat1 == 1){ cell.textLabel.textColor = [UIColor yellowColor]; } else { cell.textLabel.textColor = [UIColor redColor]; } } else{ cell.textLabel.textColor = [UIColor greenColor]; } cell.backgroundColor = [UIColor blackColor]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; } if(indexPath.section == 1) { UIButton *viewmoreButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; viewmoreButton.frame = CGRectMake(200.0f, 5.0f, 80.0f, 30.0f); [viewmoreButton setTitle:@"View More" forState:UIControlStateNormal]; [cell addSubview:viewmoreButton]; [viewmoreButton addTarget:self action:@selector(viewMore:) forControlEvents:UIControlEventTouchUpInside]; cell.backgroundColor = [ UIColor blackColor]; } return cell; } - (void)viewMore:(id)sender { [self performSegueWithIdentifier:@"MainEventList" sender:sender]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation == UIInterfaceOrientationPortrait); } -(void) dealloc { [xmlParserObject release]; [super dealloc]; } ``` Here am reading a value from XML ``` mycount = [attributeDict objectForKey:@"count"]; ``` I dont know to display in tab bar as badge. i tried to display it under ViewdidLoad but didnt worked pls help me friends