-1

我正在尝试更改未选择的标签栏图标图像的图标色调。我已经使用了下面的补丁代码,但是,我发现这个补丁代码的帖子说要在标签栏控制器中运行它,但我不知道该怎么做,所以我在 -(void)viewDidLoad 方法中运行它视图控制器 .m 文件。它出现了一个错误,说“在'ViewController *'类型的对象上找不到属性'tabBar'”我该如何解决这个问题?

// set color of selected icons and text to red
self.tabBar.tintColor = [UIColor redColor];
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor redColor], NSForegroundColorAttributeName, nil] forState:UIControlStateSelected];


// set color of unselected text to green
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor greenColor], NSForegroundColorAttributeName, nil]
                                         forState:UIControlStateNormal];

// set selected and unselected icons
UITabBarItem *item0 = [self.tabBar.items objectAtIndex:0];

// this way, the icon gets rendered as it is (thus, it needs to be green in this example)
item0.image = [[UIImage imageNamed:@"unselected-icon.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

// this icon is used for selected tab and it will get tinted as defined in self.tabBar.tintColor
item0.selectedImage = [UIImage imageNamed:@"selected-icon.png"];
4

2 回答 2

1

尝试在您的 VC 中执行以下操作,而不是使用该代码补丁:

[self.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"item_seleted.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"item_unselected.png"]];

编辑:

上面的代码在子类化时使用UITabBarController,所以如果您坚持需要子类化“UITabBarController”,请在情节提要中更改 tabBarController 的类并将该代码块放在它的viewDidLoad.

于 2013-09-26T16:36:30.293 回答
0

您可以UIViewController从情节提要中删除您的内容并添加到那里UITabBarController并将其设置为Initial View Controller.

然后你可以像这样访问UITabBarControllerAppDelegate.m

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;

这是快速的方法。

您也可以子类UITabBarController化,在情节提要中设置此类并将所有代码放入此子类中。(正如 null 在 15 分钟前所说的那样:)

于 2013-09-26T17:02:33.023 回答