Navigationsleiste und Toolbar - Farben in iOS 7 anpassen

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

  • Navigationsleiste und Toolbar - Farben in iOS 7 anpassen

    Hallo,

    zur korrekten darstellung meiner Navigationsleisten und Toolbar-Leisten habe ich im AppDelegate folgenden Code hinterlegt:

    C-Quellcode

    1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    2. // Override point for customization after application launch.
    3. [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    4. [[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:255.0/255.0 green:167.0/255.0 blue:0.0/255.0 alpha:1.0]];
    5. [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
    6. [[UIToolbar appearance] setBarTintColor:[UIColor colorWithRed:255.0/255.0 green:167.0/255.0 blue:0.0/255.0 alpha:1.0]];
    7. [[UIToolbar appearance] setTintColor:[UIColor whiteColor]];
    8. [[UINavigationBar appearance] setTitleTextAttributes:
    9. [NSDictionary dictionaryWithObjectsAndKeys:
    10. [UIColor whiteColor], NSForegroundColorAttributeName,
    11. [UIColor clearColor], UITextAttributeTextShadowColor,
    12. [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], UITextAttributeTextShadowOffset,
    13. [UIFont boldSystemFontOfSize:19.0], NSFontAttributeName,
    14. nil]];
    Alles anzeigen
    In den ViewControllern klappt das soweit auch, allerdings übernehme PopoverController diese Eigenschaft unter iOS 7 nicht. Unter iOS 8 schon.

    Woran liegt das?
    Man kann alles schaffen. Man muss es nur wollen ;)
    www.regetskcob.github.io
  • C-Quellcode

    1. [[UIToolbar appearanceWhenContainedIn:[UIPopoverController class], nil] setBarTintColor:[UIColor colorWithRed:255.0/255.0 green:167.0/255.0 blue:0.0/255.0 alpha:1.0]];
    2. [[UIToolbar appearanceWhenContainedIn:[UIPopoverController class], nil] setTintColor:[UIColor whiteColor]];
    3. [[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]setBarTintColor:[UIColor colorWithRed:255.0/255.0 green:167.0/255.0 blue:0.0/255.0 alpha:1.0]];
    4. [[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]setBarTintColor:[UIColor whiteColor]];
    Wenn du explizit noch die Klasse angibst, geht es dann?
    Knowing is not enough, we must apply.
    Willing is not enough, we must do.
  • marceo schrieb:

    C-Quellcode

    1. [[UIToolbar appearanceWhenContainedIn:[UIPopoverController class], nil] setBarTintColor:[UIColor colorWithRed:255.0/255.0 green:167.0/255.0 blue:0.0/255.0 alpha:1.0]];
    2. [[UIToolbar appearanceWhenContainedIn:[UIPopoverController class], nil] setTintColor:[UIColor whiteColor]];
    3. [[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]setBarTintColor:[UIColor colorWithRed:255.0/255.0 green:167.0/255.0 blue:0.0/255.0 alpha:1.0]];
    4. [[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]setBarTintColor:[UIColor whiteColor]];
    Wenn du explizit noch die Klasse angibst, geht es dann?
    Leider nein, selbes verhalten...
    Man kann alles schaffen. Man muss es nur wollen ;)
    www.regetskcob.github.io
  • DanielBocksteger95 schrieb:

    marceo schrieb:

    C-Quellcode

    1. [[UIToolbar appearanceWhenContainedIn:[UIPopoverController class], nil] setBarTintColor:[UIColor colorWithRed:255.0/255.0 green:167.0/255.0 blue:0.0/255.0 alpha:1.0]];
    2. [[UIToolbar appearanceWhenContainedIn:[UIPopoverController class], nil] setTintColor:[UIColor whiteColor]];
    3. [[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]setBarTintColor:[UIColor colorWithRed:255.0/255.0 green:167.0/255.0 blue:0.0/255.0 alpha:1.0]];
    4. [[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]setBarTintColor:[UIColor whiteColor]];
    Wenn du explizit noch die Klasse angibst, geht es dann?
    Leider nein, selbes verhalten...
    "If navigation controller is loaded from storyboard, barStyle is also needed to be set to UIBarStyleBlack in storyboard."

    Stackoverflow

    Vll. hilft das weiter?
    Knowing is not enough, we must apply.
    Willing is not enough, we must do.
  • marceo schrieb:

    DanielBocksteger95 schrieb:

    marceo schrieb:

    C-Quellcode

    1. [[UIToolbar appearanceWhenContainedIn:[UIPopoverController class], nil] setBarTintColor:[UIColor colorWithRed:255.0/255.0 green:167.0/255.0 blue:0.0/255.0 alpha:1.0]];
    2. [[UIToolbar appearanceWhenContainedIn:[UIPopoverController class], nil] setTintColor:[UIColor whiteColor]];
    3. [[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]setBarTintColor:[UIColor colorWithRed:255.0/255.0 green:167.0/255.0 blue:0.0/255.0 alpha:1.0]];
    4. [[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]setBarTintColor:[UIColor whiteColor]];
    Wenn du explizit noch die Klasse angibst, geht es dann?
    Leider nein, selbes verhalten...
    "If navigation controller is loaded from storyboard, barStyle is also needed to be set to UIBarStyleBlack in storyboard."
    Stackoverflow

    Vll. hilft das weiter?
    Probier ich mal aus, aber komisch dass es nur unter iOS 7 so ist, oder? :)

    Nachtrag: nein leider hilft auch das nicht. betrifft ja auch nur die Popover. Wenn der selbe ViewController am handy einfach über "pushViewController" angezeigt wird klappt das mit der Farbgebung.

    Total bescheuert...
    Man kann alles schaffen. Man muss es nur wollen ;)
    www.regetskcob.github.io
  • Habe es nun gelöst. ich hatte zuvor im jeweiligen ViewController erneut versucht, die farben über appearance anzupassen. Ohne erfolg.

    Wenn ich im Popover-Controller ab folgendes ausführe, werden die Leisten korrekt dargestellt:

    C-Quellcode

    1. self.navigationController.toolbar.barStyle = UIBarStyleBlackTranslucent;
    2. [self.navigationController.toolbar setTintColor:[UIColor whiteColor]];
    3. [self.navigationController.toolbar setBarTintColor:[UIColor colorWithRed:255.0/255.0 green:167.0/255.0 blue:0.0/255.0 alpha:1.0]];
    4. self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; [self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
    5. [self.navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:255.0/255.0 green:167.0/255.0 blue:0.0/255.0 alpha:1.0]];
    Man kann alles schaffen. Man muss es nur wollen ;)
    www.regetskcob.github.io