gpt4 book ai didi

ios - 在 iOS 7 中自定义 moreNavigationController

转载 作者:行者123 更新时间:2023-12-01 17:54:15 24 4
gpt4 key购买 nike

我知道这个话题已经有一些主题了,但它们只是部分地解决了我的问题。
我设法自定义了 moreNavigationController 导航栏颜色和标签颜色,请参见此处:
picture1

但是,如果您单击右侧的“编辑”,我会通过自定义显示的 View 遇到一些问题。这是它目前的样子:
picture2

我想达到什么目的?

  • 把完成的东西涂成白色
  • 将导航栏涂成红色
  • 将图标着色为红色

  • 我已经通过我的 AppDelegate 获得了对我的 UITabbarController 的引用
     UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;

    而且我还设置了这个tabBarController的委托(delegate)和委托(delegate)方法 - (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers也被调用。但是从那里我无法为这三个控件着色。有人给我提示吗?

    例如这个:
    id modalViewCtrl = [[[tabBarController view] subviews] objectAtIndex:1];
    if([modalViewCtrl isKindOfClass:NSClassFromString(@"UITabBarCustomizeView")] == YES)
    ((UINavigationBar*)[[modalViewCtrl subviews] objectAtIndex:0]).barTintColor = [UIColor redColor];

    还有这个:
    - (void)tabBarController:(UITabBarController *)controller willBeginCustomizingViewControllers:(NSArray *)viewControllers {
    UIView *editView = [controller.view.subviews objectAtIndex:1];
    UINavigationBar *modalNavBar = [editView.subviews objectAtIndex:0];
    modalNavBar.tintColor = [UIColor redColor];

    }

    barTintColor 什么都不做或崩溃,因为它“无法在 UILabel 上设置 barTintColor”。但我不太确定如何检索不同的控件来设置它们的颜色值..

    最佳答案

    您可以通过使用 UIAppearance 并设置 tintColor 来实现此效果,而不会弄乱 UIView 层次结构。你的 window 。因此,您可以将此代码放在您的application:didFinishLaunchingWithOptions: 中。

    [self.window setTintColor:[UIColor redColor]];
    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
    [[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];

    您还可以使用 appearanceWhenContainedIn: 来限制 UIAppearance 代码。如果您想在不同的 View Controller 中使用不同的导航栏样式。

    关于ios - 在 iOS 7 中自定义 moreNavigationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21143498/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com