In einigen Projekten habe ich gesehen dass in der rechten oberen Ecke (im NagigationBar) zwei Buttons vorhanden sind, auch mit schön “abgerundeten Ecken”. Mittels des navigationItem.rightBarButtonItem kann man ja leider nur ein UIBarButtonItem zuweisen.
Wenn Ihr mehrere Buttons haben wollt könnt Ihr ein UISegmentedControll erstellen und dies quasi als UIBarButtonItem nutzen. Hier der Beispiel-Code:
// Segmented Control erstellen
UISegmentedControl* segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray array]];
// Man soll nicht sehen dass ein Segment selektiert wurde
[segmentedControl setMomentary:YES];
// Fügt Segmente hinzu, alternativ kann man auch insertSegmentWithImage:atIndex:animated: nutzen um Bilder zu benutzen
[segmentedControl insertSegmentWithTitle:@"Historie" atIndex:0 animated:NO];
[segmentedControl insertSegmentWithTitle:@"Bearbeiten" atIndex:1 animated:NO];
// Wird für Autoresizing genutzt
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
// Setzt des Stil der SegmentedControl
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
// Aktion welche erfolgt wenn man auf die SegmentedControl klickt
[segmentedControl addTarget:self action:@selector(eineAktion:) forControlEvents:UIControlEventValueChanged];
// Erstellt ein BarButtonItem und fügt es als rightBarButtonItem hinzu
UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView: segmentedControl];
self.navigationItem.rightBarButtonItem = segmentBarItem;
// Objekt releasen
[segmentedControl release];
Super Danke! Hatte es vorher so gelöst: self.navigationItem.rightBarButtonItems = [[NSMutableArray alloc] initWithObjects:[[UIBarButtonItem alloc] initWithTitle:@”Email” style:UIBarButtonItemStyleBordered target:self action:@selector(sendMail)],
[[UIBarButtonItem alloc] initWithTitle:@”SMS” style:UIBarButtonItemStyleBordered target:self action:@selector(sendSMS)], nil];
Das geht allerdings nur unter iOS 5 wie ich schmerzlich festellen durfte….App schon im Store. Schnell Update hochladen
Besten Dank nochmal, genau das was ich brauchte.