Comment append 2 buttons sur la barre de navigation?

J'utilise Split View Controller , qui a 2 controllers de vue sur le controller de la deuxième vue, je suppose que vous ajoutez deux buttons sur le côté droit du controller de navigation. J'ai utilisé le code suivant pour append un button qui fonctionne:

UIBarButtonItem *barButton=[[UIBarButtonItem alloc] init]; [barButton setCustomView:btnShare]; self.navigationItem.rightBarButtonItem=barButton; 

essayé ce lien http://osmorphis.blogspot.in/2009/05/multiple-buttons-on-navigation-bar.html mais n'a pas pu réussir. S'il vous plaît aidez-moi à résoudre ce problème.

Essaye ça

 NSMutableArray *arrRightBarItems = [[NSMutableArray alloc] init]; UIButton *btnSetting = [UIButton buttonWithType:UIButtonTypeCustom]; [btnSetting setImage:[UIImage imageNamed:@"settings.png"] forState:UIControlStateNormal]; btnSetting.frame = CGRectMake(0, 0, 32, 32); btnSetting.showsTouchWhenHighlighted=YES; [btnSetting addTarget:self action:@selector(onSettings:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btnSetting]; [arrRightBarItems addObject:barButtonItem]; UIButton *btnLib = [UIButton buttonWithType:UIButtonTypeCustom]; [btnLib setImage:[UIImage imageNamed:@"library.png"] forState:UIControlStateNormal]; btnLib.frame = CGRectMake(0, 0, 32, 32); btnLib.showsTouchWhenHighlighted=YES; [btnLib addTarget:self action:@selector(onMyLibrary:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *barButtonItem2 = [[UIBarButtonItem alloc] initWithCustomView:btnLib]; [arrRightBarItems addObject:barButtonItem2]; UIButton *btnRefresh = [UIButton buttonWithType:UIButtonTypeCustom]; [btnRefresh setImage:[UIImage imageNamed:@"refresh.png"] forState:UIControlStateNormal]; btnRefresh.frame = CGRectMake(0, 0, 32, 32); btnRefresh.showsTouchWhenHighlighted=YES; [btnRefresh addTarget:self action:@selector(onRefreshBtn:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *barButtonItem1 = [[UIBarButtonItem alloc] initWithCustomView:btnRefresh]; [arrRightBarItems addObject:barButtonItem1]; self.navigationItem.rightBarButtonItems=arrRightBarItems; 
  [self.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:[GlobalMethods buttonWithImage:@"btn_home" heighlightImageName:@"btn_home_h" buttonFrame:CGRectMake(2, 1, 34, 34) selectorName:@selector(buttonHomeClicked:) target:self]]]; UIButton *tempButton = [UIButton buttonWithType:UIButtonTypeCustom]; [tempButton setFrame:CGRectMake(240, 5, 34, 34)]; [tempButton addTarget:target action:selectorName forControlEvents:UIControlEventTouchUpInside]; [tempButton setImage:[self getImageFromResource:normalImageName] forState:UIControlStateNormal]; [tempButton setImage:[self getImageFromResource:heighlightImageName] forState:UIControlStateHighlighted]; [tempButton setImage:[self getImageFromResource:@"btn_fav_h"] forState:UIControlStateSelected]; [self.navigationController.navigationBar addSubview:self.buttonFavorite]; 

crée deux uibarbuttonitem et ajoute les deux dans un tableau puis ajoute le tableau entier dans la barre de navigation

 UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAttachmentClicked:)]; UIBarButtonItem *sendButton = [[UIBarButtonItem alloc] initWithTitle:LS(@"Send") style:UIBarButtonItemStyleBordered target:self action:@selector(sendClicked:)]; self.navigationItem.rightBarButtonItems = @[addButton,sendButton]; 

essayez ce code

 UIButton *btnLogOut = [UIButton buttonWithType:UIButtonTypeCustom]; btnLogOut.frame = CGRectMake(0, 0, 62, 31); [btnLogOut setImage:[UIImage imageNamed:@"logout_new.png"] forState:UIControlStateNormal]; [btnLogOut addTarget:self action:@selector(logoutButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *logOutBarButton = [[UIBarButtonItem alloc] initWithCustomView:btnLogOut]; UIButton *btnError = [UIButton buttonWithType:UIButtonTypeCustom]; btnError.frame = CGRectMake(0, 0, 62, 31); [btnError setImage:[UIImage imageNamed:@"list-icon.png"] forState:UIControlStateNormal]; [btnError addTarget:self action:@selector(logoutButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *errorButton = [[UIBarButtonItem alloc] initWithCustomView:btnError]; NSArray *navigationBarBtnArray=[NSArray arrayWithObjects:errorButton,logOutBarButton, nil]; self.navigationItem.rightBarButtonItems=navigationBarBtnArray; 

Essaye ça

 UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:nil action:nil]; self.navigationItem.rightBarButtonItem = rightButton; [rightButton release]; 

faites un UIView ajoutant autant de buttons que vous voulez. alors utilisez

 UIBarButtonItem *myBarbtn=[[UIBarButtonItem alloc] initWithCustomView:buttonsView]; self.navigationItem.rightBarButtonItem = myBarbtn; 

Utilisez un contrôle segmenté pour cela

 UISegmentedControl* segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray array]]; [segmentedControl setMomentary:YES]; [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"sample1.png"] atIndex:0 animated:NO]; [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"sample2.png"] atIndex:1 animated:NO]; segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth; segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; [segmentedControl addTarget:self action:@selector(segmentedAction:) forControlEvents:UIControlEventValueChanged]; UIBarButtonItem * segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView: segmentedControl]; self.navigationItem.rightBarButtonItem = segmentBarItem; 

Faire un tableau de UIBarButtonItem s et le passer à

- (void)setRightBarButtonItems:(NSArray *)items animated:(BOOL)animated

méthode de UINavigationItem .

Utilisez simplement un UISegmentedControl au lieu d'un UIButton .

Puis changez le mode en "momentané" et ajoutez une action sur le changement.

Lorsque l'action est déclenchée, vérifiez l'élément selectedSegmentIndex pour savoir quel segment a été choisi.