2013-10-03 8 views
5

Ustawiam self.navigationItem.rightBarButtonItem = self.editButtonItem; w viewDidLoad to działa idealnie w iOS < 7 w 7 Dostaję poniżej, dlaczego tytuł nie jest wyśrodkowany? Co ja robię źle?iOS7 iphone rightBarButtonItem Tytuł nie jest wyśrodkowany/wyświetlany prawidłowo

enter image description here

także gdy znajduje się przycisk z powrotem i nie został wciśnięty przynajmniej raz uzyskać: enter image description here

Po jego kliknięciu pojawia się: enter image description here

tle w delegacie aplikacji ustawiono:

// Change the appearance of back button 
UIImage *backButtonImage = [[UIImage imageNamed:@"backbtn"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 6)]; 
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

// Change the appearance of other navigation button 

UIImage *barButtonImage = [[UIImage imageNamed:@"btn"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)]; 
[[UIBarButtonItem appearance] setBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
+0

Powinieneś dodać to jako odpowiedź i oznaczyć lub usunąć pytanie. – Wain

+0

Niestety nie jestem pewien, czy nie powinienem robić tego w systemie iOS 7? Czy nie powinienem używać obrazów tła do przycisków i przycisków? Czy powinienem móc to zrobić? Również nie jestem w stanie oznaczyć go jako odpowiedzi. – kos

+0

masz wyśrodkowany tytuł prawego przycisku paska. Jeśli więc udało Ci się osiągnąć ten – Sandeep

Odpowiedz

0

Miał ten sam problem z nawigacją pod iOS7 ...

Otrzymałem kilka odpowiedzi hereandthere, ale nie wydają się one pomocne. Jeśli używasz backIndicatorImage z UINavigationBar, to przykleja się do góry i nie wiem jak to naprawić.

skończyło się na tym, co jest sugerowane here

Tworzenie UIBarButtonItem takiego:

UIBarButtonItem* backBtn = [[UIBarButtonItem alloc] initWithTitle:@"Back" 
                  style:UIBarButtonItemStylePlain 
                  target:self 
                  action:@selector(backButtonAction:)]; 

backBackgroundImage = [UIImage imageNamed: @"back_btn"]; 
backBackgroundImage = [backBarButtonBackground resizableImageWithCapInsets: 
                  UIEdgeInsetsMake(0.0, 14.0, 0.0, 5.0)]; 
[backBtn setBackgroundImage:backBackgroundImage 
        forState:UIControlStateNormal 
       barMetrics:UIBarMetricsDefault]; 

[backBtn setTitlePositionAdjustment:UIOffsetMake(5, 0) forBarMetrics:UIBarMetricsDefault]; 

a następnie używać go jako przycisku Wstecz w kontroler nawigacji.

+1

To może, ale nie musi działać w zależności od tego, gdzie jest to zrobione, próbowałem ustawić przyciski elementów nawigacyjnych w delegacie aplikacji, aby były ponownie używane wszędzie. Nie jestem więc pewien, czy ustawienie offsetu dla tytułu zadziała, ale spróbuję. Na razie usunąłem wszystkie obrazy razem. Może to również nie rozwiązać problemu, w którym obraz nie jest wyświetlany przy pierwszym użyciu na pasku nawigacyjnym. – kos

+0

Tak, masz rację. Ale jak widać, iOS7 po prostu pokaże ci to na każdym swoim kontrolerze ViewController. Zwróć też uwagę na następujące dziwne rzeczy: kontrolery systemu (np. MFMailComposeViewController) ustawią czcionkę YOUR leftBarButtonItem, gdy są prezentowane modalnie, więc strzeż się tego. Nie shure, jeśli kiedykolwiek zostanie udokumentowane. –

+0

Mam również to samo z przyciskiem edycji. I musiałem go zastąpić niestandardowym. –

Powiązane problemy