Ich habe einen UINavigationController, der eine DetailsViewController geschoben wird. In diesem DetailsViewController möchte ich die Symbolleiste verwenden, die mit jedem UINavigationController (zumindest seit iPhone OS3.0) geliefert wird.UIToolbar Elemente werden nicht angezeigt
Also, in viewDidLoad in meinem DetailsViewController erstelle ich eine UIBarButtonItem, füge ich es auf ein Array und geben es an die Navigationssteuerung aus:
- (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];
}
Aber aus irgendeinem Grund, während der UIToolbar auf animiert Zum Anzeigen wird das Element nicht zur Symbolleiste hinzugefügt.
Gibt es eine bestimmte Reihenfolge der Dinge mit der UIToolbar getan werden muss, damit dies funktioniert?
S.S .: Die Anwendung befindet sich im (erzwungenen) Landscape-Modus und die navigationController.view hat eine Rotationstransformation darauf. Könnte das etwas damit zu tun haben?
Kurzkommentar - das UIBarButtonItem Zuordnung sieht aus wie es durchgesickert erhalten wird. Sie sollten es wahrscheinlich auf Autorelease setzen. –
Oh, richtig. Aber das NSArray behält es bei, also könnte ich einfach _item_ freigeben, nachdem ich es dem Array hinzugefügt habe, richtig? – NSSec
Ich habe eine -1 auf diesem cos gemacht, was Sie getan haben, um es für diesen einen Viewcontroller anzuzeigen, es folgt nicht allen nachfolgenden View-Controllern durch das Leben der Navigation ... was die meisten Symbolleisten tun werden. – Jann