Sto tentando di creare uno UISearchDisplayController
in modo programmatico. Ho un metodo che dovrebbe impostare il mio controller di ricerca, ma quando lo chiamo, non succede nulla.Creazione di un UISearchDisplayController a livello di codice
Questo il mio metodo -setupSearch
:
- (void)setupSearch {
UISearchBar *myBar;
UISearchDisplayController *myCon;
myBar = [[UISearchBar alloc] initWithFrame:CGRectZero];
[myBar sizeToFit];
myCon = [[UISearchDisplayController alloc]
initWithSearchBar:myBar contentsController:self];
[myBar release];
myCon.delegate = self;
myCon.searchResultsDataSource = self;
myCon.searchResultsDelegate = self;
/* Setup scopes */
{
NSMutableArray *scopes;
NSUInteger count, i;
NSString *aScope;
count = SCOPE_COUNT;
scopes = [[NSMutableArray alloc] initWithCapacity:count];
for(i = 0; i < count; i++) {
// I create four scopes here
}
myCon.searchBar.scopeButtonTitles = scopes;
[scopes release];
}
[myCon release];
}
chiamo il metodo di cui sopra nel metodo della mia sottoclasse UITableViewController
-viewDidLoad
. Sfortunatamente non succede nulla quando il mio controller di visualizzazione tabella viene visualizzato in un UITabBarController
.
Qualsiasi aiuto sarebbe molto apprezzato.
Dalla doc, il contentsController: "Questo è solitamente un'istanza della UITableViewController.". In genere, non richiesto. –
Quindi, se non si desidera utilizzare un 'UITableViewController', si può semplicemente avere un' UIViewController' conforme ai protocolli 'UITableViewDataSource' e' UITableViewDelegate'. –
Il mio problema è che 'self.searchDisplayController' è una proprietà readonly su' UITableViewController', eppure il codice qui lo sta impostando. –