2012-11-17 13 views
10

Jeśli tryb edycji jest włączona dla tableview to pokazuje przycisk zatytułowany Edycja, po naciśnięciu go zmienia tytuł do wykonanejJak zmienić Edycja/Gotowe tytuł przycisk w UINavigationBar

Zastanawiałem się, czy istnieje sposób, aby zmienić tytuł przycisku Done na coś innego?

Już zmieniłem tytuł ukończonego przycisku.

kod użyłem jest

self.navigationItem.rightBarButtonItem = self.editButtonItem; 
self.editButtonItem.title = @"Change"; 

Teraz Edit jest zmiana

Jak zrobić Gotowe do czegoś innego?

Odpowiedz

9

Można zmienić tytuł przycisk Edytuj tak: -

- (void)setEditing:(BOOL)editing animated:(BOOL)animated 
{ 
    // Make sure you call super first 
    [super setEditing:editing animated:animated]; 

    if (editing) 
    { 
     self.editButtonItem.title = NSLocalizedString(@"Cancel", @"Cancel"); 
    } 
    else 
    { 
     self.editButtonItem.title = NSLocalizedString(@"Edit", @"Edit"); 
    } 
} 

jego pracy jak EDIT: -

enter image description here

DO

enter image description here

+0

Perfect, wielkie dzięki :) – aLFaRSi

+0

zaakceptować odpowiedź, jeśli użyteczne thx ... kolega –

+0

zrobiłem, ale to było każe mi czekać na jakiś czas :) – aLFaRSi

7

Tutaj jest metodą zmiany i t dla Swift

override func setEditing (editing:Bool, animated:Bool) 
{ 
    super.setEditing(editing,animated:animated) 
    if (self.editing) { 
     self.editButtonItem().title = "Editing" 
    } 
    else { 
     self.editButtonItem().title = "Not Editing" 
    } 
} 
3

budynek na Nitin's answer proponuję nieco inne podejście, który wykorzystuje wbudowany w UIButtonBar elementów systemowych.

Dzięki temu Twój interfejs użytkownika będzie wyglądał tak, jakby system wyglądał tak: &. Na przykład standardowy przycisk "Gotowe", aby przerwać edytowanie, powinien mieć określony pogrubiony wygląd na iOS 8.

Takie podejście zapewnia również wolną lokalizację napisów.

Oto kod mam:

-(IBAction) toggleEditing:(id)sender 
{ 
    [self setEditing: !self.editing animated: YES]; 
} 

-(void) setEditing:(BOOL)editing animated:(BOOL)animated 
{ 
    [super setEditing: editing animated: animated]; 

    const UIBarButtonSystemItem systemItem = 
    editing ? 
    UIBarButtonSystemItemDone : 
    UIBarButtonSystemItemEdit; 

    UIBarButtonItem *const newButton = 
    [[UIBarButtonItem alloc] 
     initWithBarButtonSystemItem: systemItem 
          target: self 
          action: @selector(toggleEditing:)]; 

    [self.navigationItem setRightBarButtonItems: @[newButton] animated: YES]; 
} 

Przykładem tutaj jest dla przypadku, gdy Twój UIViewController obsługiwanej w UINavigationController i tak ma instancję UINavigationItem. Jeśli tego nie zrobisz, musisz zaktualizować element paska we właściwy sposób.

w twojej viewDidLoad wykorzystywać następujące wywołanie skonfigurować przycisk Edit gotowy do użytku:

[self setEditing: NO animated: NO]; 
+1

Ładne rozwiązanie oszczędzające czas, nie ma potrzeby w zlokalizowanych ciągach. – kelin

Powiązane problemy