Change UITabBar tint colors in the More menu

后端 未结 3 552
面向向阳花
面向向阳花 2020-12-10 20:08

I\'m trying to change the blue colour from icons in the more menu. I tried almost everything I found on Stack Overflow, but nothing worked. I tried this solution, but is not

相关标签:
3条回答
  • 2020-12-10 20:39

    This is the Swift version of Ludovic's answer.

    Keep in mind that this version only changes the tint color, since the original answer did the text color change in a very hacky way. For changing it properly, you'd have to override moreNavigationController and its cellForRowAt function.

    tabBarController?.tabBar.tintColor = .red
    
    if let moreTableView = tabBarController?.moreNavigationController.topViewController?.view as? UITableView {
        moreTableView.tintColor = .red
    }
    
    0 讨论(0)
  • 2020-12-10 20:44

    To do what you need, you should use images by creating UITabBarItem for each controller and add an image and a selected image.

    See Apple Documentation about UITabBarItem

    Otherwise looks here, from @Aaron Brager :

    • How to set UITabBarItem's unselected tint, ***including system items*** (iOS7)
    • UITabBarController unselected icon image tint

    Edit after seing the full code First there is many mistakes in your project, assets should be in xcassets folder, in view didload write your code after the 'super viewDidLoad]', etc.

    About your problem, in your viewDidLoad method in the FirstViewController

    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        // Your code start here, not before the super
        [[UITabBar appearance] setTintColor:[UIColor redColor]];
    
        // Get table view of more new viewController
        UITableView *view =(UITableView*)self.tabBarController.moreNavigationController.topViewController.view;
    
        view.tintColor = [UIColor redColor]; // Change the image color
    
        if ([[view subviews] count]) {
            for (UITableViewCell *cell in [view visibleCells]) {
                cell.textLabel.textColor = [UIColor redColor]; // Change the text color
    
            }
        }
    }
    
    0 讨论(0)
  • 2020-12-10 20:48

    to change color of this button

        moreNavigationController.navigationBar.tintColor = .white
    

    0 讨论(0)
提交回复
热议问题