在UITabBarController中设置UINavigationController的UITabBarItem

时间:2012-10-20 18:41:18

标签: iphone objective-c ios

我正在开发一个iphone应用程序,它在每个选项卡中都有一个带有UINavigationControllers的主视图控制器(UITabBarController)。问题是我无法更改TabBarItem的数据(标题和图像)。

这是我加载viewcontrollers的方法:

AroundViewController *aroundViewController = [[AroundViewController alloc] init];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:aroundViewController];
[[navController navigationBar] setTintColor:[UIColor grayColor]];

UITabBarController *tabBarController = [[UITabBarController alloc] init];

NSArray *viewControllers = [NSArray arrayWithObjects:navController, nil];
[tabBarController setViewControllers:viewControllers];

[self presentViewController:tabBarController animated:YES completion:nil];

我正在尝试在aroundviewcontroller的init中设置tabbaritem,但我没有成功。 我正在阅读,一个解决方案是在初始化

[self setTitle:@"whatever"]; 

这有效但我无法改变图像。

提前致谢。

3 个答案:

答案 0 :(得分:1)

使用视图控制器的tabBarItem实例直接访问标签栏项目!

[self.tabBarItem ....]

[self.tabBarItem setImage: ...]
[self.tabBarItem setTitle: ...]

编辑:

hm,然后在init或viewWillAppear方法中尝试以下操作:

    UITabBarItem* tabBarItem =  [[UITabBarItem alloc] initWithTitle:@"YourTitle" image:[UIImage imageNamed:@"YourImage.png"] tag:9];
    self.tabBarItem = tabBarItem;
    [tabBarItem release];

答案 1 :(得分:1)

在为UITabBarController设置UIViewControllers之前,您可以这样做:

[navController.tabBarItem setImage:[UIImage imageNamed:@"MY-IMAGE"]];
[navController setTitle:@"MY-TITLE"];

NSArray *viewControllers = [NSArray arrayWithObjects:navController, nil];
[tabBarController setViewControllers:viewControllers];

答案 2 :(得分:0)

我找到了解决方案。 在viewWillAppear中我把:

[[[self navigationController] tabBarItem] setTitle:@"HELLO"];

有效。