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