2009-07-28 4 views
2

Kann jemand zwei Systemknöpfe oben rechts in meiner Navigationsleiste hinzufügen? Ich weiß, dass benutzerdefinierte Schaltflächen hinzugefügt werden können, und ich verstehe wirklich nicht, warum die Systemschaltflächen dies auch nicht können.Navigationssymbolleiste rechts zwei Tasten

Und ich brauche es wirklich. Ich brauche eine Schaltfläche zum Hinzufügen und eine Schaltfläche zum Bearbeiten.

Bearbeiten, um Tabellenzeilen neu anzuordnen und zu löschen. Hinzufügen, um eine neue Zeile hinzuzufügen.

Ich kann nicht die untere Symbolleiste verwenden, weil ich dort eine Registerkarte habe.

Kann mir jemand helfen?

Antwort

0

Mit der Standardnavigationsleiste können Sie nur drei Schaltflächen haben, wenn mir etwas fehlt. Eine auf der linken, eine in der Mitte und eine auf der rechten Seite. Selbst wenn Sie einen kleineren Button erstellen und denken, dass Sie genügend Platz haben, werden alle Berührungen für denselben Button registriert (je nachdem, welcher Link rechts oder links ist). Wenn Sie Funktionalität wie die Navigationsleisten von Google erhalten möchten, würde ich vorschlagen, sie selbst zu implementieren. Es wäre wirklich nicht so schwierig, und Sie würden genau die Funktionalität bekommen, die Sie wollen. Wenn Sie sich dafür entscheiden, kann SO Sie sicher durch schwierige Teile führen.

0

Ich frage mich, was passieren würde, wenn Sie eine benutzerdefinierte Ansicht für Ihre UINavigationItem verwenden würde:

myViewController.navigationItem.titleView = myCustomView; 

Ich stelle mir die Titleview auf der rechten Seite den ganzen Weg erweitern könnte, wenn Sie nicht über eine Taste dort haben. Ich bemerkte, dass der Titeltext mehr Platz bekommt, wenn es keine rechte Taste gibt.

Dann könnten Sie eine Beschriftung (für den Titel) und Ihre zwei Schaltflächen zu dieser benutzerdefinierten Ansicht hinzufügen.

3

So etwas sollte funktionieren (Ihre eigenen Bilder und Aktionsmethoden ersetzen):

#define ACTIONEDIT 0 
#define ACTIONADD 1 
... 
UISegmentedControl* segmentedControl = [[UISegmentedControl alloc] 
     initWithItems: [NSArray arrayWithObjects: 
     [UIImage imageNamed:@"icon-edit.png"], 
     [UIImage imageNamed:@"icon-add.png"], 
     nil] 
     ]; 
[segmentedControl addTarget:self 
        action:@selector(segmentAction:) 
      forControlEvents:UIControlEventValueChanged]; 

segmentedControl.frame = CGRectMake(0, 0, 90, 30); 
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
segmentedControl.momentary = YES; 
[segmentedControl setEnabled:YES forSegmentAtIndex:ACTIONEDIT]; 
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] 
         initWithCustomView:segmentedControl]; 

... 

- (void)segmentAction:(id)sender 
{ 
    UISegmentedControl* segCtl = sender; 
    int action = [segCtl selectedSegmentIndex]; 
    switch (action) { 
    case ACTIONADD: 
    [self addToList]; 
    break; 
    case ACTIONEDIT: 
    [self editList]; 
    break; 
    } 
}