OStack程序员社区-中国程序员成长平台

标题: ios - UITabBar setTintColor 在 [_window setRootViewController] 之后不起作用 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 06:14
标题: ios - UITabBar setTintColor 在 [_window setRootViewController] 之后不起作用

我遇到了一个奇怪的问题。每当我的应用程序启动时,我都会在 AppDelegate 中执行以下操作:

- (BOOL)applicationUIApplication *)application didFinishLaunchingWithOptionsNSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    [[UINavigationBar appearance] setBarTintColor:[UIColor whiteColor]];
    [[UINavigationBar appearance] setTintColor:[UIColor mainLightBlue]];
    [[UITabBar appearance] setTintColor:[UIColor mainLightBlue]];

    [IJContext setDefaultContext:[[IJContext alloc] init]];
    RKLogConfigureFromEnvironment();
    return YES;
}

然后,如果我的用户成功登录,我在 AppDelegate 中执行以下操作:

-(void)presentNewsFeed
{
    RKLogConfigureByName("RestKit/Network", RKLogLevelDebug);
    UIViewController *newTopViewController = [[UIStoryboard storyboardWithName"MainiPadStoryboard" bundle:nil] instantiateViewControllerWithIdentifier"GlobalInitialSliding"];
    [_window setRootViewController:newTopViewController];
}

此时,setTintColor 工作正常。现在,每当用户注销时,我都会调用:

- (void)presentLoginScreen
{
    UIViewController *newTopViewController = [[UIStoryboard storyboardWithName"MainiPadStoryboard" bundle:nil] instantiateViewControllerWithIdentifier"Login"];
    [_window setRootViewController:newTopViewController];
}

它再次位于 AppDelegate 中。如果重新登录,我会再次调用 presentNewsFeed。但是,在第二次, setTintColor 不再起作用,并且我的所有选项卡在被选中时实际上都没有 tintColor 。所以我的用户实际上无法知道选择了哪个选项卡。关于为什么的任何想法?



Best Answer-推荐答案


我在 viewController 中有另一个 tintColor 声明,它与 appDelegate 中的声明相混淆!

谢谢

关于ios - UITabBar setTintColor 在 [_window setRootViewController] 之后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21460357/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4