In un'app che deve essere eseguita su iOS 6 e iOS 7, il pulsante di annullamento della barra di ricerca incorporata nella barra di navigazione non viene più visualizzato se l'app è eseguito su iOS 7. Su iOS 6, funziona.iOS 7 non mostra il pulsante Annulla della barra di ricerca nella barra di navigazione
La barra di ricerca è nella visualizzazione del titolo della barra di navigazione e il pulsante di annullamento deve essere visualizzato se la barra di ricerca diventa il primo soccorritore:
iOS 7
iOS 6
In un banco di prova isolato, il codice è molto semplice:
@interface MyViewController : UITableViewController<UISearchBarDelegate>
@property (nonatomic) IBOutlet UISearchBar* searchBar;
@end
@implementation MyViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.titleView = self.searchBar;
}
- (void) searchBarTextDidBeginEditing: (UISearchBar*) searchBar {
[searchBar setShowsCancelButton: YES animated: YES];
}
@end
Si tratta di un cambiamento intenzionale in iOS 7 che ho perso nella documentazione? Se sì, quale dovrebbe essere l'alternativa?
In caso contrario, ho fatto un errore nel mio codice?
Hai impostato il delegato per UISearchBar? – ppaulojr
Sì, ho impostato il delegato in Interface Builder e 'searchBarTextDidBeginEditing:' viene chiamato come previsto. Altrimenti non funzionerebbe su iOS 6. – Codo