Ich versuche, verschiedene UINavigationBar Farbe für verschiedene UIViewController im Projekt zu setzen. Bis jetzt versuchte ich folgenden Code in ViewdidAppear-Methode jeder UIViewController-Klasse und es funktioniert nicht immer die Farbe der Navigationsleiste ändert sich nicht.
%Vor%Bitte helfen Sie mir
Versuchen Sie
%Vor%Oder, auf iOS 6,
%Vor%Wenn Sie einen Navigationscontroller als rootViewController haben, holen Sie ihn mit:
%Vor%Und dann legen Sie die Farbe fest:
%Vor% Und wenn Sie die Farbe in jedem Viewcontroller ändern möchten, fügen Sie einfach den Code in jede viewWillAppear
Methode
Wenn Sie das viewWillAppear
nicht in jedem Viewcontroller außer Kraft setzen wollen, können Sie einen Superviewcontroller für Ihr Projekt erstellen. Aber wenn es zu spät ist, können Sie auch eine benutzerdefinierte UINavigationController
erstellen und Push / Pop-Methoden einfach überschreiben:
Mach das für die vier Methoden:
%Vor% Oder zumindest für die Methoden, die Sie verwenden.
Überschreibe dann viewWillAppear
in deinen ViewControllern, die eine andere Balkenfarbe benötigen.
Anscheinend möchten Sie die Farbe im Storyboard und nicht im Code festlegen.
und öffnen Sie dann das Attribut inspect ,
Probieren Sie einen anderen Tönungsfarbton aus oder ändern Sie das Hintergrundbild , um zu funktionieren.
Implementieren Sie im Vorschau-Controller, um der Navigationsleiste eine klare Farbe zu geben:
%Vor%Legen Sie die benutzerdefinierte Ansicht im selben Rahmen der Navigationsleiste fest.
Die meisten Lösungen geben Ihnen einen Blink-Effekt, wenn Sie die Hintergrundfarbe ändern, während Sie Farben auf viewWillAppear
einstellen.
Eine Lösung ohne Blink-Effekt besteht darin, die Farbe der Navigationsleiste für jeden View-Controller in viewDidLoad
einzustellen und dann die Hintergrundfarbe vor der Navigation wie unten zu ändern.
Und dann finden Sie die vorherige Ansicht Controller und legen Sie die Hintergrundfarbe vor der Ansicht erscheint als:
%Vor%Tags und Links objective-c ios uiviewcontroller uinavigationbar uicolor