2013-04-05 14 views
5

Stworzyłem jeden tytuł paska nawigacyjnego w moim projekcie storyboardów, ale po przejściu do następnego kontrolera widoku przycisk Wstecz wyświetla tę samą nazwę, co mój poprzedni pasek nawigacji (główny pasek nawigacyjny). Czy mogę ustawić oddzielne nazwy tytułów i przycisków powrotu?Nazwa paska nawigacyjnego i nazwa przycisku Wstecz są takie same?

Próbowałem wykonać kod, ale nie działa? czemu?

[email protected]"Recent Books"; 
[email protected]"Back"; 
+0

Proszę spojrzeć na moją odpowiedź http://stackoverflow.com/questions/9871578/how-to-change-the-uinavigationcontroller-back- button-name/9871775 # 9871775 – Tendulkar

+0

Ta odpowiedź nie działa dla mnie – Naveen

Odpowiedz

19

Według UINavigationItem Class Reference

„Gdy pozycja ta nawigacja jest bezpośrednio poniżej górnego elementu w stosie, kontroler nawigacyjny wywodzi przycisk Wstecz na pasku nawigacji z tego elementu nawigacyjnego. [ ...] Jeśli chcesz określić niestandardowy obraz lub tytuł dla przycisku Wstecz, możesz zamiast tego przypisać niestandardowy przycisk paska (z niestandardowym tytułem lub obrazem) do tej właściwości . "

Więc spróbuj to w pierwszym VC skąd jesteś pchania innych VC

[email protected]"Recent Books"; 
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
            initWithTitle:@"Back" 
            style:UIBarButtonItemStylePlain 
            target:nil 
            action:nil]; 
self.navigationItem.backBarButtonItem=backButton; 
+0

@Bhargavi ... Błąd techniczny ... jest OK – Naveen

+0

Mam dwa przyciski BarButton dostosowane do mojego pierwszego widoku, po lewej do "Informacje" i prawo do "Ustawienia". A jednak musiałem ustawić nazwę BackButton w pierwszym widoku. W moim drzewie komponentów są teraz trzy przyciski BarButton, ale po uruchomieniu aplikacji wszystko działało normalnie. Po prostu nie ma sensu. –

2

Poniższy powinno rozwiązać twój problem

-(void)viewDidAppear:(BOOL)animated 
{ 
    self.navigationController.navigationBar.backItem.title = @"back"; 
} 

Można również użyć tej składni Objective-C

[[self.navigationController.navigationBar backItem] setTitle:@"back"]; 
6

Załóżmy, że naciskasz swój widokkoniec ller A -> B

W viewcontroller spróbować dodając ten kod w viewDidLoad metody

UIBarButtonItem *btn_Back = [[UIBarButtonItem alloc] initWithTitle:@"Back" 
style:UIBarButtonItemStylePlain target:nil action:nil]; 
self.navigationItem.backBarButtonItem=btn_Back; 

Więc zobaczą przycisk "Wstecz" w viewcontroller B

1

Wystarczy zrobić to w ten sposób, jeden w najprostszy sposób znalazłem dotąd:

Tworzenie niestandardowego przycisku wstecz i dodać go w pasku nawigacyjnym po lewej stronie przycisk właściwości produktu:

- (void)viewDidLoad 
{ 
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
UIImage *backBtnImage = [UIImage imageNamed:@"Backnavigation.png"] ; // Here set the back button image 
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal]; 
[backBtn addTarget:self action:@selector(handleBack:) forControlEvents:UIControlEventTouchUpInside]; 
backBtn.frame = CGRectMake(0, 0, 24, 24); 
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ; 
self.navigationItem.leftBarButtonItem = backButton; 
} 


//Handle the Back Button Event 
- (void) handleBack:(id)sender 
{ 
    // do your custom handler code here 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

Wykonując tę ​​czynność, nie trzeba zmieniać tytułu paska nawigacyjnego za każdym razem.

Oto Przycisk Wstecz celach: enter image description here

Powiązane problemy