Ho un UINavigationController che viene premuto un DetailsViewController. In questo DetailsViewController, voglio utilizzare la barra degli strumenti fornita con ogni UINavigationController (almeno da iPhone OS3.0).UIToolbar elementi non visualizzati
Così, in viewDidLoad nel mio DetailsViewController creo un UIBarButtonItem, lo aggiungo ad un allineamento e la mano fuori al controller di navigazione:
- (void) viewDidLoad {
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(selectTemplate)];
NSArray *items = [NSArray arrayWithObject: item];
TestUIAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
UINavigationController *navController = delegate.navigationController;
[navController setToolbarItems: items animated:NO];
[navController setToolbarHidden: NO animated: YES];
}
Ma, per qualche ragione, mentre l'UIToolbar è animato su per lo schermo, l'elemento non viene aggiunto alla barra degli strumenti.
Esiste una sorta di ordine specifico che le cose devono essere fatte con UIToolbar perché funzioni?
P.S .: l'applicazione è in modalità orizzontale (forzata) e il navigationController.view ha una trasformazione di rotazione su di esso. Potrebbe avere qualcosa a che fare con questo?
commento breve - che l'allocazione UIBarButtonItem sembra che otterrà trapelato. Probabilmente dovresti impostarlo su autorelease. –
Oh, giusto. Ma il NSArray lo mantiene, quindi potrei semplicemente rilasciare _item_ dopo averlo aggiunto all'array, giusto? – NSSec
Ho fatto un -1 su questo cos cos'hai permesso di visualizzarlo per quel viewcontroller, non segue tutti i controllori di vista successivi attraverso la vita della navigazione ... che è quello che la maggior parte delle barre degli strumenti sono solite fare. – Jann