iOS 7 - TabBarController 没有文本标签
Posted
技术标签:
【中文标题】iOS 7 - TabBarController 没有文本标签【英文标题】:iOS 7 - TabBarController does not have text label 【发布时间】:2014-03-16 05:42:09 【问题描述】:我正在尝试使用UITabBarController
创建一个应用程序。我已经在线学习了几个教程,但我的 UITabBarController
没有文本,但您可以从一个视图切换到另一个视图,因此我似乎遗漏了一些东西。
这是我的didFinishWithLaunchingOptions
函数:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.tabController = [[UITabBarController alloc] init];
UIViewController *viewController1 = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
ListViewController *listVC = [[ListViewController alloc] initWithStyle:UITableViewStylePlain];
self.tabController.viewControllers = [[NSArray alloc] initWithObjects:viewController1, listVC, nil];
self.window.rootViewController = self.tabController;
[self.window makeKeyAndVisible];
[self createCopyOfDatabaseIfNeeded];
return YES;
我错过了什么?
【问题讨论】:
【参考方案1】:您需要设置每个视图控制器的标签栏图像和标题:
self.tabController = [[UITabBarController alloc] init];
UIViewController *viewController1 = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
ListViewController *listVC = [[ListViewController alloc] initWithStyle:UITableViewStylePlain];
viewController1.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"VC1" image:[UIImage imageNamed:@"tab_ yourViewController.png"] tag:0];
listVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"listVC" image:[UIImage imageNamed:@"tab_listvc.png"] tag:1];
self.tabController.viewControllers = [[NSArray alloc] initWithObjects:viewController1, listVC, nil];
也可以(并且通常首选)为viewDidLoad
中的每个视图控制器设置 tabBarItem,即:
- (void)viewDidLoad
[super viewDidLoad]; // Be a good citizen!
self.tabBarItem = [[UITabBarItem alloc] init...];
...
【讨论】:
我个人认为每个视图控制器设置自己的标题和图像会更好。我在每个视图控制器的viewDidLoad
方法(或init
方法)中执行此操作。但无论哪种方式都有效。【参考方案2】:
您可以使用代码为每个视图设置标签栏项
UITabBar *tabBar = self. tabController.tabBar;
UITabBarItem *tabBarItem0 = [tabBar.items objectAtIndex:0];
UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:1];
[tabBarItem0 setTitle:@"title1"];
[tabBarItem0 setImage:[UIImage imageNamed:@"img1"]];
[tabBarItem1 setTitle:@"title2"];
[tabBarItem1 setImage:[UIImage imageNamed:@"img2"]];
self.window.rootViewController = self.tabController;
[self.window makeKeyAndVisible];
【讨论】:
以上是关于iOS 7 - TabBarController 没有文本标签的主要内容,如果未能解决你的问题,请参考以下文章
iOS 自定义TabBarController zhuanzai
iOS:CYLTabBarController低耦合集成TabBarController