2013-10-03 9 views
5

Ich setze self.navigationItem.rightBarButtonItem = self.editButtonItem; in viewDidLoad funktioniert das perfekt in iOS < 7 in 7 Ich bekomme unten, warum ist Titel nicht zentriert? Was mache ich falsch?iOS7 iphone rightBarButtonItem Titel nicht zentriert/richtig angezeigt

enter image description here

Auch wenn es eine Zurück-Taste und es hat mindestens einmal geklickt nicht erhalte ich: enter image description here

Nachdem es angeklickt wird, erhalte ich: enter image description here

dem Hintergrund der Schaltflächen werden in der App festgelegt:

// 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

Sie sollten das als Antwort hinzufügen und markieren oder löschen Sie die Frage. – Wain

+0

Leider ist mir nicht klar, ob ich das nicht in iOS 7 machen sollte? Soll ich keine Hintergrundbilder für Buttons und Buttons verwenden? Sollte ich das können? Auch ich kann es nicht als Antwort markieren. – kos

+0

hast du den titel für den rechten bar-Button zentriert..Wenn so wie du das geschafft hast – Sandeep

Antwort

0

Hatte das gleiche Problem mit der Navigation unter iOS7 ...

Haben mehrere Antworten hereandthere, aber sie scheinen nicht hilfreich zu sein. Wenn Sie backIndicatorImage von UINavigationBar verwenden, bleibt es an der Spitze und ich weiß nicht, wie ich es beheben kann.

landete ich tun, was here

eine UIBarButtonItem erstellen wie folgt vorgeschlagen:

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]; 

Und es dann als die auf dem Navigationscontroller Zurück-Taste verwenden.

+1

Dies kann oder kann nicht funktionieren, je nachdem, wo es getan wird, habe ich versucht, Navigation Element Schaltflächen in der App-Delegierten, so dass sie überall wiederverwendet werden. Ich bin mir also nicht sicher, ob das Setzen des Offset für den Titel funktionieren würde, aber ich werde es versuchen. Für jetzt habe ich die Verwendung von Bildern alle zusammen entfernt. Dies kann auch nicht das Problem lösen, bei dem das Bild nicht angezeigt wird, wenn es das erste Mal in der Navigationsleiste verwendet wird. – kos

+0

Ja, du hast Recht. Aber wie Sie sehen können, unterstützt iOS7 Sie nur bei jedem ViewControllers. Beachten Sie auch die folgende seltsame Sache: System-Controller (ex. MFMailComposeViewController) werden Schriftart von YOUR leftBarButtonItem setzen, wenn sie modal präsentiert, also hüte dich vor dieser Sache. Nicht sicher, ob es jemals dokumentiert wird. –

+0

Auch ich habe das gleiche mit dem Bearbeiten-Button. Und ich musste es auch durch einen eigenen ersetzen. –