In an app that\'s supposed to run on iOS 6 and iOS 7, the cancel button of the search bar embedded in the navigation bar is not shown anymore if the app is run on iOS 7. On iOS
I've solved this problem simple, just by adding rightBarButtonItem :)
self.navigationItem.titleView = self.searchBar;
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Cancel", nil) style:UIBarButtonItemStylePlain target:self action:@selector(didClickCancelButton:)] autorelease];
But sure you have to check if current iOS version is >= 7.0, otherwise you will get two "cancel" buttons..
BTW This method allows you to have "cancel" button which always enabled
iOS 7 is different with iOS 6 in navigation bar, so if you want to show UISearch bar in navigation bar,you can try this:
put your UISearchbar on a UIView like this[self.searchView addSubview self.searchBar]
, and set the navigationbar's titleView to your searchView like thisself.navagitioncontroller.navigationItem.titleView = self.searchView
Hope it works for you