Mehr als ein UIBarButtonItem als rightNavigationItem nutzen

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];
Dieser Beitrag wurde unter iOS abgelegt und mit verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Eine Antwort auf Mehr als ein UIBarButtonItem als rightNavigationItem nutzen

  1. ActionScript sagt:

    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.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>