Wie setzt man die Farbe der Navigationsleiste für verschiedene UIViewcontroller in xib?

8

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

    
Naveen Kumar 09.12.2014, 16:29
quelle

7 Antworten

10

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

ein

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:

%Vor%

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.

    
Y.Bonafons 09.12.2014, 16:38
quelle
4

Schnell:

Global:

%Vor%

Für jeden UIViewController:

%Vor%     
William Hu 29.02.2016 15:34
quelle
3

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.

    
chenzhongpu 09.12.2014 17:09
quelle
0
  1. Implementieren Sie im Vorschau-Controller, um der Navigationsleiste eine klare Farbe zu geben:

    %Vor%
  2. Legen Sie die benutzerdefinierte Ansicht im selben Rahmen der Navigationsleiste fest.

jiangjiefs 23.12.2015 06:53
quelle
0

Swift 2.2

%Vor%     
RaziPour1993 11.07.2016 06:33
quelle
0

Wenn Sie einen UINavigationController als Root-Ansicht verwenden, müssen Sie die folgende Methode für die ViewWillAppear-Methode verwenden:

%Vor%

Es wird Ihre aktuelle UIViewController Navigationsleistenfarbe ändern:)

    
tryp 09.06.2015 06:47
quelle
0

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.

%Vor%

Und dann finden Sie die vorherige Ansicht Controller und legen Sie die Hintergrundfarbe vor der Ansicht erscheint als:

%Vor%     
Anish 웃 27.12.2017 07:02
quelle