Farbe aller Navigation Bars ändern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Farbe aller Navigation Bars ändern

    Einen wunderschönen guten Morgen zusammen,

    ich stehe vor einem Problem welches einfach nicht gelöst werden will. Vielleicht kann mir jemand von euch einen Tipp geben :)

    Ich habe einen NavigationController verknüpft mir dem File ViewController.swift. Wenn ich nun die Farbe der NavigationBar ändern will
    mache ich das so:

    Quellcode

    1. navigationController!.navigationBar.barTintColor = UIColor.whiteColor()




    Soweit so gut. Nun habe ich aber in dem ViewController.swift File einen Facebooklogin der auf auf einen neuen NavigationController, bei richtigem Login, verlinkt

    Quellcode

    1. print("logged in")
    2. let storyboard = UIStoryboard(name: "Main", bundle: nil)
    3. let mainController = storyboard.instantiateViewControllerWithIdentifier("s_navigationControllerLoggedIn")
    4. let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    5. appDelegate.window?.rootViewController = mainController

    Der zweite NavigationController ist mit dem File loggedInView.swift verknüpft. Füge ich nun in dieses File den gleichen Code ein:

    Quellcode

    1. navigationController!.navigationBar.barTintColor = UIColor.whiteColor()

    Bleibt die Navigation schlichtweg grau. Auch das hier geht nicht:


    Quellcode

    1. UINavigationBar.appearance().barTintColor = UIColor.redColor()

    Weiß jemand womit das zusammenhängt? Bzw. hat jemand eine Idee wo der Fehler liegt?

    Ich bedanke mich schon einmal recht herzlich :rolleyes:
  • nussratte schrieb:

    Das musst du im viewcontroller machen
    Jab das hab ich wie oben beschrieben versucht. Leider klappt das nur beim 1. NavigationController. Der 2. der nach dem Facebooklogin angesteuert wird reagiert nicht auf den Code:

    Quellcode

    1. navigationController!.navigationBar.barTintColor = UIColor.whiteColor()
    ich verstehe aber nicht warum das so ist?! Hast du eine Idee was da falsch laufen könnte?
  • Vielleicht hilft es ja: Wir machen das in unseren Apps immer im AppDelegate

    Quellcode

    1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    2. // ...
    3. // Allgemeines Farbschema der App definieren
    4. [[UINavigationBar appearance] setBarTintColor:[UIColor colorWithHexString:@"#F8F8F8"]];
    5. [[UIToolbar appearance] setBarTintColor:[UIColor colorWithHexString:@"#F8F8F8"]];
    6. [[UINavigationBar appearance] setTintColor:[UIColor RGBColorWithRed:88 green:128 blue:173]];
    7. [[UIToolbar appearance] setTintColor:[UIColor RGBColorWithRed:88 green:128 blue:173]];
    8. [[UINavigationBar appearance] setTranslucent:NO];
    9. //...
    10. return YES;
    11. }
    Alles anzeigen
    Man kann alles schaffen. Man muss es nur wollen ;)
    www.regetskcob.github.io
  • Michael schrieb:

    Ist den die Property navigationController auch ungleich Nil?
    Da du ja mit Storyboard arbeitest, warum setzt du die Farbe der NavigationBar nicht im Interface Editor?
    Oh man ja nach dieser Option habe ich gesucht, aber da nirgends Color oder Background stand ging ich davon aus, dass es nicht geht.
    Jetzt wo du das angesprochen hast habe ich nochmal nachgesehen und siehe da unter "Simulated Metrics" > Top Bar > Opaque Navigation Bar auswählen und sie ist weiß.

    Warum muss Apple sich denn auch immer so komische Begriffe ausdenken :D :whistling:

    Vielen Dank für eure Hilfe!