user1007522
user1007522

Reputation: 8118

UIBarButtonItem with image doesn't show

I'm trying to set a UIBarButtonItem with an image. The problem is that it never appears. When I just add a UIBarButtonItem with a title it works.

UIBarButtonItem *openLeftSliderButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"filter.png"] style:UIBarButtonItemStylePlain target:self action:@selector(openLeftSlider)];
    self.navigationItem.leftBarButtonItem = openLeftSliderButton;

Upvotes: 1

Views: 563

Answers (2)

Ashok Londhe
Ashok Londhe

Reputation: 1491

 UIImage *sideImage = [UIImage imageNamed:@"i1.jpg"];    
 UIButton *btnSideMenu = [UIButton buttonWithType:UIButtonTypeCustom];     
 [btnSideMenu setImage:sideImage forState:UIControlStateNormal]; 
 [btnSideMenu setImage:sideImage forState:UIControlStateHighlighted];  
 [btnSideMenu setFrame:CGRectMake(0, 0, 20, 20)]; 
 [btnSideMenu addTarget:self action:@selector(btnLeftMenuClicked) forControlEvents:UIControlEventTouchUpInside];  
 UIBarButtonItem *sideMenuItem = [[UIBarButtonItem alloc] initWithCustomView:btnSideMenu];    
 self.navigationItem.leftBarButtonItem=sideMenuItem; 

Upvotes: 1

Iraklii
Iraklii

Reputation: 1315

You can create UIBarButtonItem using initWithCustomView

_leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_leftButton setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];
[_leftButton addTarget:self action:@selector(leftButton:) forControlEvents:UIControlEventTouchUpInside];
[_leftButton sizeToFit];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:_leftButton];

Upvotes: 0

Related Questions