UIBarButtonItem init avec la coutume de sélection de l'affichage ne fonctionne pas correctement

Je suis en train d'essayer pendant des heures pour faire un gauche bouton de fonctionner correctement et de mimer un bouton de retour.

Mon code pour créer le bouton:

UIBarButtonItem *backButton = [self customBarButton:@"back_button" imageHiglighted:@"settings_button_highlighted" x:20 y:0 widthDivider:2.6 heightDivider:2.6];

backButton.target = self;
backButton.action = @selector(buttonPressed:);

self.navigationItem.leftBarButtonItem = backButton;

Ici la méthode dite de créer des boutons personnalisés:

- (UIBarButtonItem *)customBarButton:(NSString *)imageDefault imageHiglighted:(NSString *)imageHighlighted x:(float)x y:(float)y widthDivider:(float)widthDivider heightDivider:(float)heightDivider {

UIImage *customImageDefault = [UIImage imageNamed:imageDefault];
UIImage *customImageHighlighted = [UIImage imageNamed:imageHighlighted];

CGRect frameCustomButton = CGRectMake(x, y, customImageDefault.size.width/widthDivider, customImageDefault.size.height/heightDivider);

UIButton *customButton = [[UIButton alloc] initWithFrame:frameCustomButton];

[customButton setBackgroundImage:customImageDefault forState:UIControlStateNormal];
[customButton setBackgroundImage:customImageHighlighted forState:UIControlStateHighlighted];

UIBarButtonItem *barCustomButton =[[UIBarButtonItem alloc] initWithCustomView:customButton];

return barCustomButton;

}

Et de l'action:

-(void)buttonPressed:(id) sender{

    NSLog(@"Entered");
    SearchViewController *ViewController = [[SearchViewController alloc] init];
    [self.navigationController pushViewController:ViewController animated:YES];

}

J'ai donc été en mesure de le faire avec un simple UIButton mais pas avec un UIButtonBarItem et je ne sais vraiment pas ce qui se passe avec elle.

Si vous pouviez m'aider je lui en serais très reconnaissant.

Grâce.

La solution est d'ajouter: [customButton addTarget:auto action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; à l'intérieur de la méthode que je vais appeler.

OriginalL'auteur Roger Fernandez Guri | 2012-08-27