0

我正在考虑更改标签栏上的图形,例如

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UITabBar *tabBar = tabBarController.tabBar;
UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];
UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2];
UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3];
tabBarItem1.title = @"Home";
tabBarItem2.title = @"Maps";
tabBarItem3.title = @"My Plan";
tabBarItem4.title = @"Settings";

我在这里遇到的问题是我的 tabbarcontroller 不是我的根视图,那么如何引用 tabbarcontroller 来更改选项卡图像?

我正在遵循这篇文章的建议(我可以拥有超过 1 个 UITabBarController 吗?),它指的是有一个链接到一个或多个 tabbarcontroller 的 tableview。

所以我的根视图不是标签栏,而是标签栏视图是在来自前一个屏幕后加载的。

我有这一切工作,初始屏幕,然后是标签栏,一切正常,我只需要更改标签栏上的图形,并且无法做到这一点,因为所有关于更改标签栏图形的教程都使用应用程序委托并将 tabbarcontroller 称为根视图。

非常感谢您对此的任何帮助!

4

2 回答 2

2

选项卡栏项属于每个选项卡中的各个内容视图控制器,因此您应该更改这些控制器中的选项卡项属性,而不是尝试引用选项卡栏控制器。如果您希望这些更改在标签栏控制器出现在屏幕上时立即可见,您需要将这些自定义设置在它们的 awakeFromNib 或 initWithCoder 方法中(对于在 IB 中设置的控制器)。

于 2013-05-14T14:21:20.170 回答
0

理查德,

首先,您参考的帖子指出这是非常糟糕的视觉设计,但无论如何,如果您需要这样做。

你如何引用标签栏控制器取决于你如何实例化它。这些东西应该很明显,所以我猜你正在使用 xibs 或故事板。

无论哪种方式,当您加载第二个将有标签栏的视图时,您将加载一个视图控制器来控制视图。只需将选项卡栏绑定到 IB 中视图控制器的属性,您就可以在视图中进行设置并加载视图控制器。

实际上,如果您使用的是 IB(XIB 或故事板),您可以在那里设置您的图标。

于 2013-05-13T22:40:34.023 回答