quitar plus pantalla mac dividida ios objective-c xml uitabbar

ios - plus - ¿Cómo establecer el valor de placa en la barra de pestañas?



split view iphone (8)

Tengo que leer datos de xml y mostrar valores en el controlador de vista. Estoy usando tab barcontroller. donde tengo que leer datos XML y mostrarlos en la barra de pestañas como distintivo. Aquí está mi código de controlador.

-(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]; }

Aquí estoy leyendo un valor de XML

mycount = [attributeDict objectForKey:@"count"];

No sé mostrar en la barra de pestañas como distintivo. Traté de mostrarlo en ViewdidLoad, pero no funcionó. Por favor, ayúdenme amigos.


Déjame decirte la forma más sencilla de establecer el valor de credencial:

[[self navigationController] tabBarItem].badgeValue = @"YourBadgeValue";


La respuesta de Vineet Singh es buena si desea cambiar la insignia de la pestaña actual. Si, en cambio, necesita cambiar el valor de otra pestaña que tiene en la barra de pestañas, use lo siguiente:

C objetivo

[[self.tabBarController.tabBar.items objectAtIndex:0] setBadgeValue:nil];

Rápido

tabBarController?.tabBar.items?[0].badgeValue = nil

Recuerde reemplazar el índice que usé con la pestaña real para la que desea editar el valor.


Para el ángulo iónico, solo debes vincular el valor a tabBadge

<ion-tab [root]="tab3Root" tabIcon="notifications" tabBadgeStyle="red" tabBadge={{totalUnread}}></ion-tab>


Prueba esto:

tabBarItem.badgeValue = [NSString stringWithFormat:@"%d",count];


Swift 2.0:

self.navigationController!.tabBarItem.badgeValue = "YourBadgeValue"


Veo algunas respuestas sobre cómo configurar esto en el TabItem, pero si la pestaña nunca se ha cargado, la función viewDidLoad nunca se cargará. Esto es especialmente importante cuando intenta crear un proceso en segundo plano, como el manejo de notificaciones push, establecer una credencial de pestaña. Es mucho más probable que necesite su TabViewController para manejar la configuración de la credencial. Las etiquetas en el TabItem parecen más apropiadas y luego voltean las pestañas hasta que encuentre la que desea actualizar.

¡Aclamaciones!


AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; UITabBarItem *tbItem = (UITabBarItem *)[appDelegate.tabBarController.tabBar.items objectAtIndex:tabIndex]; tbItem.badgeValue = [NSString stringWithFormat:@"%i", count];


int indexOfTabbarItem = 0; NSString *badgeValue = [NSString stringWithFormat:@"%lu", (long)countUnreadMessages]; [[[[self viewControllers] objectAtIndex:indexOfTabbarItem] tabBarItem] setBadgeValue:([badgeValue isEqualToString:@"0"]) ? nil : badgeValue];

Esto funcionó para mí. Algunas veces tienes que encontrar el controlador correcto y luego su elemento para configurarlo. Aclamaciones.