Mengubah warna bilah navigasi di Swift

240

Saya menggunakan Tampilan Pemilih untuk memungkinkan pengguna memilih tema warna untuk seluruh aplikasi.

Saya berencana mengubah warna bilah navigasi, latar belakang dan mungkin bilah tab (jika memungkinkan).

Saya telah meneliti bagaimana melakukan ini tetapi tidak dapat menemukan contoh Swift. Adakah yang bisa memberi saya contoh kode yang perlu saya gunakan untuk mengubah warna bilah navigasi dan warna teks bilah navigasi?

Tampilan Picker diatur, saya hanya mencari kode untuk mengubah warna UI.

pengguna3746428
sumber

Jawaban:

526

Bilah Navigasi:

navigationController?.navigationBar.barTintColor = UIColor.green

Ganti greenColor dengan UIColor apa pun yang Anda inginkan, Anda dapat menggunakan RGB juga jika Anda mau.

Teks Bilah Navigasi:

navigationController?.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.orange]

Ganti orangeColor dengan warna apa pun yang Anda suka.

Tab Bar:

tabBarController?.tabBar.barTintColor = UIColor.brown

Teks Bilah Tab:

tabBarController?.tabBar.tintColor = UIColor.yellow

Pada dua yang terakhir, ganti brownColor dan yellowColor dengan warna pilihan Anda.

trumpeter201
sumber
Terima kasih banyak! Saya tidak jauh dengan apa yang saya coba, tetapi saya tidak memiliki banyak hal dalam urutan yang benar.
user3746428
Saya tidak yakin. Jika Anda menggunakan push segment sebagai ganti modal, itu harus bilah navigasi yang sama, tapi saya tidak sepenuhnya yakin. Maaf.
trumpeter201
2
Setelah memperbarui ke beta Xcode yang lebih baru, pengaturan warna teks judul tidak lagi berfungsi. titleTextAttributes tidak tersedia di Swift. Ada ide?
user3746428
1
Bisakah Anda membuka pertanyaan baru dan mungkin menghubungkannya? Obrolan bukanlah tempat terbaik untuk hal seperti ini.
trumpeter201
3
Saya menemukan bahwa ini membuat saya menggunakan NSForegroundColorAttributeName sebagai nama atribut, tetapi jika tidak berfungsi dengan baik.
Jake Hall
90

Berikut adalah beberapa penyesuaian tampilan yang sangat mendasar yang dapat Anda terapkan di seluruh aplikasi:

UINavigationBar.appearance().backgroundColor = UIColor.greenColor()
UIBarButtonItem.appearance().tintColor = UIColor.magentaColor()
//Since iOS 7.0 UITextAttributeTextColor was replaced by NSForegroundColorAttributeName
UINavigationBar.appearance().titleTextAttributes = [UITextAttributeTextColor: UIColor.blueColor()]
UITabBar.appearance().backgroundColor = UIColor.yellowColor();

Lebih lanjut tentang UIAppearanceAPI di Swift dapat Anda baca di sini: https://developer.apple.com/documentation/uikit/uiappearance

Tertarik
sumber
Jadi bagaimana saya menggunakan ini untuk mengubah warna bilah navigasi untuk seluruh aplikasi? Saat ini saya hanya punya: self.navigationController.navigationBar.barTintColor = UIColor.newBlueColor () dan tentu saja ini hanya mengubah warna bilah navigasi pengendali tampilan di mana kode berada. Bagaimana saya bisa menggunakannya untuk mengubah semua bilah navigasi? Saya mencoba menggunakan: UINavigationBar.appearance (). BackgroundColor = UIColor.newBlueColor () tetapi sepertinya tidak melakukan apa-apa.
user3746428
4
Untuk merefleksikan chnage di aplikasi entri, rekatkan metode aplikasi AppDelegate.swift di atas di bawah ini (aplikasi: aplikasi UIA, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {// Tempatkan kode di atas}
Badrinath
7
Gunakan barTintColor sebagai ganti backgroundColor. UINavigationBar.appearance (). BarTintColor = UIColor.greenColor ()
Michael Peterson
@Keenle Saya agak bingung ... Mengapa tidak mengubah warna latar belakang UINavigationBar melalui API penampilan, mengubah warnanya seluruhnya? Saya mencoba mengatur warna latar belakang menjadi biru dan itu memberi saya warna biru keunguan yang aneh ...
fja
60

Diperbarui untuk Swift 3, 4, 4.2, 5+

// setup navBar.....
UINavigationBar.appearance().barTintColor = .black
UINavigationBar.appearance().tintColor = .white
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
UINavigationBar.appearance().isTranslucent = false

Cepat 4

UINavigationBar.appearance().barTintColor = .black
UINavigationBar.appearance().tintColor = .white
UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
UINavigationBar.appearance().isTranslucent = false

Swift 4.2, 5+

UINavigationBar.appearance().barTintColor = .black
UINavigationBar.appearance().tintColor = .white
UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
UINavigationBar.appearance().isTranslucent = false

Juga dapat memeriksa di sini: https://github.com/hasnine/iOSUtilitiesSource

Jamil Hasnine Tamim
sumber
Swift 4.2: NSAttributedString.Key.foregroundColor
Kasra Babaei
pengaturan warna warna ke putih daripada bartintcolor menunjukkan warna asli. Bagus!
NickCoder
@NickCoder menghargainya. :) juga periksa lib saya: github.com/hasnine/iOSUtilitiesSource
Jamil Hasnine Tamim
52
UINavigationBar.appearance().barTintColor = UIColor(red: 46.0/255.0, green: 14.0/255.0, blue: 74.0/255.0, alpha: 1.0)
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor()]

Cukup tempelkan baris ini ke didFinishLaunchingWithOptionsdalam kode Anda.

Mohit Tomar
sumber
Saya mencoba ini dengan RGB dan tidak berfungsi di mana pun saya meletakkannya.
Nathan McKaskle
@NathanMcKaskle Periksa RGB Anda, seharusnya dalam format "xx / 250.0f".
Mohit Tomar
Digunakan di didFinishLaunchingWithOptions dan bekerja dengan sempurna. Di dalam viewDidLoad tidak berfungsi dengan sempurna.
Touhid
26

Di dalam AppDelegate , ini telah secara global mengubah format NavBar dan menghapus garis bawah / perbatasan (yang merupakan area masalah bagi kebanyakan orang) untuk memberi Anda apa yang saya pikir Anda dan orang lain cari:

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarPosition: UIBarPosition.Any, barMetrics: UIBarMetrics.Default)
    UINavigationBar.appearance().shadowImage = UIImage()
    UINavigationBar.appearance().tintColor = UIColor.whiteColor()
    UINavigationBar.appearance().barTintColor = Style.SELECTED_COLOR
    UINavigationBar.appearance().translucent = false
    UINavigationBar.appearance().clipsToBounds = false
    UINavigationBar.appearance().backgroundColor = Style.SELECTED_COLOR
    UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName : (UIFont(name: "FONT NAME", size: 18))!, NSForegroundColorAttributeName: UIColor.whiteColor()] }

Kemudian Anda dapat mengatur file Constants.swift , dan berisi adalah struct Gaya dengan warna dan font dll. Anda kemudian dapat menambahkan tableView / pickerView ke ViewController dan menggunakan array "availableThemes" untuk memungkinkan pengguna mengubah themeColor.

Hal yang indah tentang ini adalah Anda dapat menggunakan satu referensi di seluruh aplikasi Anda untuk setiap warna dan itu akan diperbarui berdasarkan "Tema" yang dipilih pengguna dan tanpa satu itu default ke theme1 ():

import Foundation
import UIKit

struct Style {


static let availableThemes = ["Theme 1","Theme 2","Theme 3"]

static func loadTheme(){
    let defaults = NSUserDefaults.standardUserDefaults()
    if let name = defaults.stringForKey("Theme"){
        // Select the Theme
        if name == availableThemes[0]   { theme1()  }
        if name == availableThemes[1]   { theme2()  }
        if name == availableThemes[2]   { theme3()  }
    }else{
        defaults.setObject(availableThemes[0], forKey: "Theme")
        theme1()
    }
}

 // Colors specific to theme - can include multiple colours here for each one
static func theme1(){
   static var SELECTED_COLOR = UIColor(red:70/255, green: 38/255, blue: 92/255, alpha: 1) }

static func theme2(){
    static var SELECTED_COLOR = UIColor(red:255/255, green: 255/255, blue: 255/255, alpha: 1) }

static func theme3(){
    static var SELECTED_COLOR = UIColor(red:90/255, green: 50/255, blue: 120/255, alpha: 1) } ...
David West
sumber
2
Terima kasih bung, jawaban Anda benar-benar membantu saya setidaknya untuk saya, saya menggunakan bagian pertama dan itu luar biasa dan sangat berguna
Ameer Fares
1
Terima kasih banyak
kawan
19

Untuk melakukan ini di storyboard (Interface Builder Inspector)

Dengan bantuan IBDesignable, kami dapat menambahkan lebih banyak opsi ke Interface Builder Inspector untuk UINavigationControllerdan men-tweak mereka di storyboard. Pertama, tambahkan kode berikut ke proyek Anda.

@IBDesignable extension UINavigationController {
    @IBInspectable var barTintColor: UIColor? {
        set {
            guard let uiColor = newValue else { return }
            navigationBar.barTintColor = uiColor
        }
        get {
            guard let color = navigationBar.barTintColor else { return nil }
            return color
        }
    }
}

Kemudian cukup atur atribut untuk pengontrol navigasi di storyboard.

masukkan deskripsi gambar di sini

Pendekatan ini juga dapat digunakan untuk mengelola warna teks bilah navigasi dari storyboard:

@IBInspectable var barTextColor: UIColor? {
  set {
    guard let uiColor = newValue else {return}
    navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: uiColor]
  }
  get {
    guard let textAttributes = navigationBar.titleTextAttributes else { return nil }
    return textAttributes[NSAttributedStringKey.foregroundColor] as? UIColor
  }
}
Fangming
sumber
18

Swift 4:

Kode yang berfungsi sempurna untuk mengubah tampilan bilah navigasi di tingkat aplikasi.

masukkan deskripsi gambar di sini

// MARK: Navigation Bar Customisation

// To change background colour.
UINavigationBar.appearance().barTintColor = .init(red: 23.0/255, green: 197.0/255, blue: 157.0/255, alpha: 1.0)

// To change colour of tappable items.
UINavigationBar.appearance().tintColor = .white

// To apply textAttributes to title i.e. colour, font etc.
UINavigationBar.appearance().titleTextAttributes = [.foregroundColor : UIColor.white,
                                                    .font : UIFont.init(name: "AvenirNext-DemiBold", size: 22.0)!]
// To control navigation bar's translucency.
UINavigationBar.appearance().isTranslucent = false

Selamat Coding!

Gaurav Singla
sumber
16
UINavigationBar.appearance().barTintColor

bekerja untukku

Asbar
sumber
15

SWIFT 4 - Transisi mulus (solusi terbaik):

Jika Anda kembali dari pengontrol navigasi dan Anda harus mengatur warna yang berbeda pada pengontrol navigasi yang Anda dorong dari yang ingin Anda gunakan

override func willMove(toParentViewController parent: UIViewController?) {
    navigationController?.navigationBar.barTintColor = .white
    navigationController?.navigationBar.tintColor = Constants.AppColor
}

alih-alih meletakkannya di viewWillAppear sehingga transisinya lebih bersih.

SWIFT 4.2

override func willMove(toParent parent: UIViewController?) {
    navigationController?.navigationBar.barTintColor = UIColor.black
    navigationController?.navigationBar.tintColor = UIColor.black
}
ricks
sumber
11

Dalam Swift 4

Anda dapat mengubah warna bilah navigasi. Cukup gunakan potongan kode di bawah iniviewDidLoad()

Warna Bilah Navigasi

self.navigationController?.navigationBar.barTintColor = UIColor.white

Bilah Navigasi Warna Teks

self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.purple]

Untuk iOS 11 Navigasi Judul Besar , Anda perlu menggunakan largeTitleTextAttributesproperti

self.navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.purple]
Vinoth Vino
sumber
9

The appearance()fungsi tidak selalu bekerja untuk saya. Jadi saya lebih suka membuat objek NC dan mengubah atributnya.

var navBarColor = navigationController!.navigationBar
navBarColor.barTintColor =
    UIColor(red:  255/255.0, green: 0/255.0, blue: 0/255.0, alpha: 100.0/100.0)
navBarColor.titleTextAttributes =
    [NSForegroundColorAttributeName: UIColor.whiteColor()]

Juga jika Anda ingin menambahkan gambar, bukan hanya teks, itu berfungsi juga

var imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 70, height: 70))
imageView.contentMode = .ScaleAspectFit

var image = UIImage(named: "logo")
imageView.image = image
navigationItem.titleView = imageView
GuiSoySauce
sumber
dengan cara itu, saya bisa mengubah self.navigationController? .navigationBar.topItem? .title warna. Terima kasih.
oguzhan
8

Gunakan API penampilan, dan warna barTintColor.

UINavigationBar.appearance().barTintColor = UIColor.greenColor()
Michael Peterson
sumber
4

iOS 8 (cepat)

let font: UIFont = UIFont(name: "fontName", size: 17)   
let color = UIColor.backColor()
self.navigationController?.navigationBar.topItem?.backBarButtonItem?.setTitleTextAttributes([NSFontAttributeName: font,NSForegroundColorAttributeName: color], forState: .Normal)
Long Pham
sumber
4

Jika Anda memiliki pengontrol navigasi khusus, Anda dapat menggunakan potongan kode di atas. Jadi dalam kasus saya, saya telah menggunakan potongan kode sebagai berikut.

Swift 3.0, versi XCode 8.1

navigationController.navigationBar.barTintColor = UIColor.green

Teks Bilah Navigasi:

navigationController.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.orange]

Pembicaraan ini sangat membantu.

Bogdan Dimitrov Filov
sumber
4

Pembaruan Swift 4, iOS 12 dan Xcode 10

Cukup masukkan satu baris di dalamnya viewDidLoad()

navigationController?.navigationBar.barTintColor = UIColor.red
Xcodian Solangi
sumber
3

Dalam Swift 2

Untuk mengubah warna di bilah navigasi,

navigationController?.navigationBar.barTintColor = UIColor.whiteColor()

Untuk mengubah warna di bilah navigasi item,

navigationController?.navigationBar.tintColor = UIColor.blueColor()

atau

navigationController!.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.blueColor()]
Riccardo Caroli
sumber
3

Cepat 3

UINavigationBar.appearance().barTintColor = UIColor(colorLiteralRed: 51/255, green: 90/255, blue: 149/255, alpha: 1)

Ini akan mengatur warna bilah navigasi Anda seperti warna bilah Facebook :)

Sazzad Hissain Khan
sumber
3

Swift 3 dan Swift 4 Compatible Xcode 9

Solusi yang lebih baik untuk membuat Kelas untuk bilah Navigasi umum

Saya memiliki 5 Pengendali dan setiap judul pengontrol diubah ke warna oranye. Karena setiap pengontrol memiliki 5 pengontrol navigasi, maka saya harus mengubah setiap warna baik dari inspektur atau dari kode.

Jadi saya membuat kelas alih-alih mengubah setiap satu bilah Navigasi dari kode saya hanya menetapkan kelas ini dan itu bekerja pada semua 5 controller Kode menggunakan kembali Kemampuan. Anda hanya perlu menetapkan kelas ini untuk Setiap controller dan hanya itu.

import UIKit

   class NabigationBar: UINavigationBar {
      required init?(coder aDecoder: NSCoder) {
       super.init(coder: aDecoder)
    commonFeatures()
 }

   func commonFeatures() {

    self.backgroundColor = UIColor.white;
      UINavigationBar.appearance().titleTextAttributes =     [NSAttributedStringKey.foregroundColor:ColorConstants.orangeTextColor]

 }


  }
Ourang-Zeb Khan
sumber
2

iOS 10 Swift 3.0

Jika Anda tidak keberatan menggunakan kerangka kerja cepat maka kami UINeraida untuk mengubah latar belakang navigasi sebagai UIColoratau HexColoratau UIImagedan mengubah teks tombol navigasi kembali secara terprogram, mengubah warna teks lengkap forground.

Untuk UINavigationBar

    neraida.navigation.background.color.hexColor("54ad00", isTranslucent: false, viewController: self)
    
    //Change navigation title, backbutton colour
    
    neraida.navigation.foreground.color.uiColor(UIColor.white, viewController: self)
    
    //Change navigation back button title programmatically
    
    neraida.navigation.foreground.backButtonTitle("Custom Title", ViewController: self)
    
    //Apply Background Image to the UINavigationBar
    
    neraida.navigation.background.image("background", edge: (0,0,0,0), barMetrics: .default, isTranslucent: false, viewController: self)
Komunitas
sumber
2

Cepat 3

Satu liner sederhana yang bisa Anda gunakan ViewDidLoad()

//Change Color
    self.navigationController?.navigationBar.barTintColor = UIColor.red
//Change Text Color
    self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
Codetard
sumber
2

Versi ini juga menghapus garis bayangan 1px di bawah bilah navigasi:

Swift 5: Taruh ini di AppDelegate Anda didFinishLaunchingWithOptions

UINavigationBar.appearance().barTintColor = UIColor.black
UINavigationBar.appearance().tintColor = UIColor.white
UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
UINavigationBar.appearance().isTranslucent = false
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .any, barMetrics: .default)
UINavigationBar.appearance().shadowImage = UIImage()
tuvok
sumber
1

saya harus melakukan

UINavigationBar.appearance().tintColor = UIColor.whiteColor()
UINavigationBar.appearance().barStyle = .Black
UINavigationBar.appearance().backgroundColor = UIColor.blueColor()

jika tidak, warna latar tidak akan berubah

Guilherme Carvalho
sumber
1

Pertama atur properti isTranslucent dari navigationBar ke false untuk mendapatkan warna yang diinginkan. Kemudian ubah warna navigasiBar seperti ini:

@IBOutlet var NavigationBar: UINavigationBar!

NavigationBar.isTranslucent = false
NavigationBar.barTintColor = UIColor (red: 117/255, green: 23/255, blue: 49/255, alpha: 1.0)
Nupur Sharma
sumber
1

Pastikan untuk mengatur Status Tombol untuk .normal

extension UINavigationBar {

    func makeContent(color: UIColor) {
        let attributes: [NSAttributedString.Key: Any]? = [.foregroundColor: color]

        self.titleTextAttributes = attributes
        self.topItem?.leftBarButtonItem?.setTitleTextAttributes(attributes, for: .normal)
        self.topItem?.rightBarButtonItem?.setTitleTextAttributes(attributes, for: .normal)
    }
}

PS iOS 12, Xcode 10.1

Mazen Kasser
sumber
1
Terima kasih. Saya telah mencari berjam-jam untuk topItemsolusi ini . Ini membuat frustrasi jumlah perubahan yang terus dilakukan oleh Apple tentang bagaimana gaya diterapkan pada navigasi.
App Dev Guy
1

cukup panggil ekstensi ini dan berikan warna itu secara otomatis akan mengubah warna nav bar

extension UINavigationController {

     func setNavigationBarColor(color : UIColor){
            self.navigationBar.barTintColor = color
        }
    }

di tampilan didload atau di view akan muncul panggilan

self.navigationController? .setNavigationBarColor (warna: <# T ## UIColor #>)

Talha Rasool
sumber
1

Coba ini di AppDelegate:

//MARK:- ~~~~~~~~~~setupApplicationUIAppearance Method
func setupApplicationUIAppearance() {

    UIApplication.shared.statusBarView?.backgroundColor = UIColor.clear

    var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }

    UINavigationBar.appearance().tintColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    UINavigationBar.appearance().barTintColor =  UIColor.white
    UINavigationBar.appearance().isTranslucent = false

    let attributes: [NSAttributedString.Key: AnyObject]

    if DeviceType.IS_IPAD{
        attributes = [
            NSAttributedString.Key.foregroundColor: UIColor.white,
            NSAttributedString.Key.font: UIFont(name: "HelveticaNeue", size: 30)
            ] as [NSAttributedString.Key : AnyObject]
    }else{
        attributes = [
            NSAttributedString.Key.foregroundColor: UIColor.white
        ]
    }
    UINavigationBar.appearance().titleTextAttributes = attributes
}

iOS 13

func setupNavigationBar() {
    //        if #available(iOS 13, *) {
    //            let window = UIApplication.shared.windows.filter {$0.isKeyWindow}.first
    //            let statusBar = UIView(frame: window?.windowScene?.statusBarManager?.statusBarFrame ?? CGRect.zero)
    //            statusBar.backgroundColor = #colorLiteral(red: 0.2784313725, green: 0.4549019608, blue: 0.5921568627, alpha: 1) //UIColor.init(hexString: "#002856")
    //            //statusBar.tintColor = UIColor.init(hexString: "#002856")
    //            window?.addSubview(statusBar)
    //            UINavigationBar.appearance().tintColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    //            UINavigationBar.appearance().barTintColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    //            UINavigationBar.appearance().isTranslucent = false
    //            UINavigationBar.appearance().backgroundColor = #colorLiteral(red: 0.2784313725, green: 0.4549019608, blue: 0.5921568627, alpha: 1)
    //            UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white]
    //        }
    //        else
    //        {
    UIApplication.shared.statusBarView?.backgroundColor = #colorLiteral(red: 0.2784313725, green: 0.4549019608, blue: 0.5921568627, alpha: 1)
    UINavigationBar.appearance().tintColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    UINavigationBar.appearance().barTintColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    UINavigationBar.appearance().isTranslucent = false
    UINavigationBar.appearance().backgroundColor = #colorLiteral(red: 0.2784313725, green: 0.4549019608, blue: 0.5921568627, alpha: 1)
    UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white]
    //        }
}

Ekstensi

extension UIApplication {

var statusBarView: UIView? {
    if responds(to: Selector(("statusBar"))) {
        return value(forKey: "statusBar") as? UIView
    }
    return nil
}}
Tej Patel
sumber
1

Saya menulis ini untuk mereka yang masih memiliki masalah dengan solusi di sini.

Saya menggunakan Xcode Versi 11.4 (11E146). Yang bekerja untuk saya adalah:

navigationController?.navigationBar.barTintColor = UIColor.white
navigationController?.navigationBar.tintColor = UIColor.black

TETAPI !, jika Anda mengatur barTintColor di storyboard ke nilai lain selain "default" 2 baris kode ini tidak akan berpengaruh.

Jadi, berhati-hatilah dan atur kembali ke barTintColor default di Storyboard. Oh apel ...

Tomas Cordoba
sumber
Masih masalah yang sama meskipun mengubah warna warna ke default :(
marika.daboja
@ marika.daboja Semua pengontrol navigasi Anda di storyboard diatur ke warna default?
Tomas Cordoba
Hai, saya hanya punya 1 Pengontrol Navigasi (ditambah 2 Pengontrol Tampilan Tabel). Bar Pengontrol Navigasi Warna warna diatur ke 'default'. Kode I yang harus saya perbarui warna ini sepertinya tidak memiliki pengaruh terhadapnya.
marika.daboja
@ marika.daboja pastikan Anda bahwa navigationController tidak nol. Dan Anda meletakkan baris kode ini di viewDidLoad ()
Tomas Cordoba
0

Tambahkan baris ini ke dalam AppDelegate Anda di dalam fungsi didFinishLaunchingWithOptions:

baris ini untuk latar belakang bilah navigasi Anda.

UINavigationBar.appearance().barTintColor = .orange

baris ini adalah jika Anda tidak isTranslucent to false itu akan menunjukkan warna putih pada navigasi.

UINavigationBar.appearance().tintColor = .white

baris ini untuk teks dan ikon Anda di bilah navigasi

UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: Styles.textFirstColor]

baris ini kami untuk turunkan semuanya ke bilah navigasi Anda.

UINavigationBar.appearance().isTranslucent = false
Ali Qaderi
sumber