UINavigationBar appearance Ausnahmen

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

  • UINavigationBar appearance Ausnahmen

    Hi,
    ich habe in meiner App im AppDelegate durch[UINavigationBar appearance mittels folgenden Code überall die selbe NavigationBar gesetzt:

    Quellcode

    1. [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"Nav-Bar.png"] forBarMetrics:UIBarMetricsDefault];


    Das funktioniert auch sehr sehr gut. Nun habe ich jetzt einen ViewController, der diese NavigationBar nicht haben soll. Gut habe ich mir gedacht, mache ich es eben im AppDelegate über:

    Quellcode

    1. [UINavigationBar appearanceWhenContainedIn:


    Das funktionierte auch soweit gut. Nur jetzt muss ich je nach Parameter eine andere NavigationBar anzeigen. Das heißt jetzt vereinfach gesagt, wenn den ViewController während der Laufzeit "Gelb" übergeben wurde eine gelbe NavigationBar, wenn "Rot" übergeben wurde eben eine rote NavigatonBar. Die Bilder liegen auch alle schon vor und ich wollte die auch wie folgt anzeigen, nur das funktioniert eben wegen der Appearance nicht, es wird weiterhin die StandardNavigationBar angezeigt. Gibt es irgend eine Variante das Problem zu lösen?

    Quellcode

    1. if ([self.themeField isEqualToString:@"Rot"]) {
    2. self.navigationController.navigationBar.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Nav-Bar_Red.png"]];
    3. }


    Viele Grüße
    Nils
  • Ich würde das apperance nur benutzen wenn ich wirklich ÜBERALL die gleiche Navbar haben möchte. Wenn ich unterschiedliche brauche, dann würde ich die auch explizit setzen. Sonst schießt Du Dir nur irgrndwann selber ins Knie, nur weil Du ein paar Zeilen Code sparen wolltest.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)