Mehr als 2 Buttons in UINavigationBar
Im Normalfall gibt es genau 2 Positionen für Buttons beim UINavigationController. Oftmals reichen die aber einfach nicht aus. Ein Beispiel dafür ist die App Anwaltsfinder. Allerdings gibt es einen sehr einfachen Weg, mehr als zwei Buttons in die UINavigationBar zu packen.
UIToolbar* toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 100, 44.01)];
[toolbar setBarStyle: UIBarStyleDefault];
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:3];
UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"info.png"] style:UIBarButtonItemStylePlain target:self action:@selector(showInfo:)];
saveButton.style = UIBarButtonItemStyleBordered;
[buttons addObject:saveButton];
[saveButton release];
UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
[buttons addObject:spacer];
[spacer release];
shownYET = NO;
rightButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"flag.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(switchView)];
[buttons addObject:rightButton];
[toolbar setItems:buttons animated:NO];
[buttons release];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolbar];
[toolbar release];
Das ist der gesamte Code um zwei Buttons auf der rechten Seite der NavigationBar anzuzeigen.
Was macht er im Detail?
Es wird eine UIToolbar erstellt, die mit den eigentlichen UIBarButtonItems gefüllt wird. Anschließend wird der rechte Button-Slot der UINavigationBar mit einer eigenen View, eben der Toolbar initialisiert.
Das war schon der ganze Zauber. Viel Spaß damit :-)
- 0 Kommentar(e)

Mein Kommentar