Create a UIBarButtonSystemItem with UIBarButtonItemStyle

pasine picture pasine · Sep 8, 2011 · Viewed 10.9k times · Source

I want to create a system UIBarButton, but I want it to have plain style.
I've tried with this code, but the style is ignored. What's wrong with it?

UIBarButtonItem *search = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(showSearch)];    
search.style = UIBarButtonItemStylePlain;
self.navigationItem.rightBarButtonItem = search;
[search release];

Answer

Ecarrion picture Ecarrion · Sep 9, 2011

The main thing here is that you need to place your button in the previous controller, not in the one that is going to be pushed.

//Your actual ViewController
UIBarButtonItem *search = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(showSearch)];    
search.style = UIBarButtonItemStylePlain;
self.navigationItem.rightBarButtonItem = search;
[search release];

//Controller that is going to be pushed and will display the new UIBarButtonItem
[self.navigationController pushViewController:newViewController animated:YES];