Ajouter un bouton à la barre de navigation par programme

Salut j’ai besoin de mettre le bouton sur le côté droit, dans la barre de navigation, par programmation, de sorte que si j’appuie sur le bouton, je vais effectuer des actions. J’ai créé la barre de navigation par programme;

navBar=[[UINavigationBar alloc]initWithFrame:CGRectMake(0,0,320,44) ]; 

De même, je dois append le bouton sur le côté droit de cette barre de navigation. Pour cela j’ai utilisé,

1.

  UIView* container = [[UIView alloc] init]; // create a button and add it to the container UIButton* button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 130, 44.01)]; [container addSubview:button]; [button release]; // add another button button = [[UIButton alloc] initWithFrame:CGRectMake(160, 0, 50, 44.01)]; [container addSubview:button]; [button release]; // now create a Bar button item UIBarButtonItem* item = [[UIBarButtonItem alloc] initWithCustomView:container]; // set the nav bar's right button item self.navigationItem.rightBarButtonItem = item; [item release]; 

2.

  UIImage *im; im=[UIImage imageNamed:@"back.png"]; [button setImage:im forState:UIControlStateNormal]; [im release]; backButton = [[UIBarButtonItem alloc] initWithCustomView:button]; [backButton setImageInsets:UIEdgeInsetsMake(0, -10,5, 5)]; [self.navigationItem setRightBarButtonItem:backButton]; 

3.

  UIBarButtonItem *refreshItem = [[UIBarButtonItem alloc] initWithTitle:@"button" style:UIBarButtonItemStylePlain target:self action:@selector(refreshLogsAction:)]; self.navigationItem.rightBarButtonItem = refreshItem; [refreshItem release]; 

J’ai essayé tous ces moyens, mais aucun n’affiche le bouton sur le côté droit.

Dans ma classe dérivée UIViewController , j’utilise les éléments suivants dans viewDidLoad :

 UIBarButtonItem *flipButton = [[UIBarButtonItem alloc] initWithTitle:@"Flip" style:UIBarButtonItemStyleBordered target:self action:@selector(flipView:)]; self.navigationItem.rightBarButtonItem = flipButton; [flipButton release]; 

Cela ajoute un bouton à droite avec le titre Flip, qui appelle la méthode:

-(IBAction)flipView

Cela ressemble beaucoup à vous # 3, mais cela fonctionne dans mon code.

 UIImage* image3 = [UIImage imageNamed:@"back_button.png"]; CGRect frameimg = CGRectMake(15,5, 25,25); UIButton *someButton = [[UIButton alloc] initWithFrame:frameimg]; [someButton setBackgroundImage:image3 forState:UIControlStateNormal]; [someButton addTarget:self action:@selector(Back_btn:) forControlEvents:UIControlEventTouchUpInside]; [someButton setShowsTouchWhenHighlighted:YES]; UIBarButtonItem *mailbutton =[[UIBarButtonItem alloc] initWithCustomView:someButton]; self.navigationItem.leftBarButtonItem =mailbutton; [someButton release]; 

///// appelé événement

 -(IBAction)Back_btn:(id)sender { //Your code here } 

RAPIDE:

 var image3 = UIImage(named: "back_button.png") var frameimg = CGRect(x: 15, y: 5, width: 25, height: 25) var someButton = UIButton(frame: frameimg) someButton.setBackgroundImage(image3, for: .normal) someButton.addTarget(self, action: Selector("Back_btn:"), for: .touchUpInside) someButton.showsTouchWhenHighlighted = true var mailbutton = UIBarButtonItem(customView: someButton) navigationItem?.leftBarButtonItem = mailbutton func back_btn(_ sender: Any) { //Your code here } 

Pour append un bouton de recherche dans la barre de navigation, utilisez ce code:

  UIBarButtonItem *searchButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(toggleSearch:)]; self.navigationController.navigationBar.topItem.rightBarButtonItem = searchButton; 

et implémenter la méthode suivante:

 - (IBAction)toggleSearch:(id)sender { // do something or handle Search Button Action. } 

Comment append un bouton d’ajout à la barre de navigation dans swift:

 self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "onAdd:") 

onAjouter:

 func onAdd(sender: AnyObject) { } 

Version rapide, ajoutez ceci dans viewDidLoad:

 var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "doneButton:") navigationItem.rightBarButtonItem = doneButton 

Et ceci dans votre classe View Controller

 func doneButton(sender: UIBarButtonItem) { println(111) } 
 self.navigationItem.rightBarButtonItem=[[[UIBarButtonItem alloc]initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(saveAction:)]autorelease]; -(void)saveAction:(UIBarButtonItem *)sender{ //perform your action } 

Dans la méthode ViewDidLoad de ViewController.m

 UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(back)]; [self.navigationItem setLeftBarButtonItem:cancel]; 

“(back)” sélecteur est une méthode pour dissocier le ViewController actuel

Utilisez le code suivant:

 UIBarButtonItem *customBtn=[[UIBarButtonItem alloc] initWithTitle:@"Custom" style:UIBarButtonItemStylePlain target:self action:@selector(customBtnPressed)]; [self.navigationItem setRightBarButtonItem:customBtn]; 

Simple utilisation editBarButton natif comme ça

 self.navigationItem.rightBarButtonItem = self.editButtonItem; [self.navigationItem.rightBarButtonItem setAction:@selector(editBarBtnPressed)]; 

et alors

 - (void)editBarBtnPressed { if ([infoTable isEditing]) { [self.editButtonItem setTitle:@"Edit"]; [infoTable setEditing:NO animated:YES]; } else { [self.editButtonItem setTitle:@"Done"]; [infoTable setEditing:YES animated:YES]; } } 

S’amuser…!!!

Essayez ceci. Cela fonctionne pour moi. Ajouter le bouton à la barre de navigation par programmation, également nous définissons l’image au bouton de la barre de navigation,

Voici le code: –

  UIBarButtonItem *Savebtn=[[UIBarButtonItem alloc]initWithImage: [[UIImage imageNamed:@"bt_save.png"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] style:UIBarButtonItemStylePlain target:self action:@selector(SaveButtonClicked)]; self.navigationItem.rightBarButtonItem=Savebtn; -(void)SaveButtonClicked { // Add save button code. } 

Si vous ne cherchez pas un BarButtonItem mais un bouton simple sur navigationBar puis en dessous du code fonctionne:

 UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom]; [aButton setBackgroundImage:[UIImage imageNamed:@"NavBar.png"] forState:UIControlStateNormal]; [aButton addTarget:self action:@selector(showButtonView:) forControlEvents:UIControlEventTouchUpInside]; aButton.frame = CGRectMake(260.0, 10.0, 30.0, 30.0); [self.navigationController.navigationBar addSubview:aButton]; 

Bonjour à tous !! J’ai créé la solution au problème actuel, à savoir que deux orientations UIInterface sont souhaitées avec UIIMagePicker. Dans mon ViewController où je gère le lien avec UIImagePickerController

** J’utilise un ..

 -(void) editButtonPressed:(id)sender { BOOL editPressed = YES; NSUserDefaults *boolDefaults = [NSUserDefaults standardUserDefaults]; [boolDefaults setBool:editPressed forKey:@"boolKey"]; [boolDefaults synchronize]; [self performSegueWithIdentifier:@"photoSegue" sender:nil]; } 

**

Ensuite, dans la classe AppDelegate, je fais ce qui suit.

 - (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { BOOL appDelBool; NSUserDefaults *boolDefaults = [NSUserDefaults standardUserDefaults]; appDelBool = [boolDefaults boolForKey:@"boolKey"]; if (appDelBool == YES) return (UIInterfaceOrientationMaskPortrait); else return UIInterfaceOrientationMaskLandscapeLeft; }