2014-02-17 36 views
0

我试图用UITabBarController创建应用程序。我在网上关注了几个教程,似乎我错过了一些东西,因为我的UITabBarController没有文本,但可以从一个视图切换到另一个视图。iOS 7 - TabBarController没有文本标签

这里是我的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; 
} 

任何人都可以指出什么我错过了?

任何帮助非常感谢,谢谢。

回答

3

需要设置每个视图控制器的标签栏图像和标题:

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]; 

它也有可能(并且通常优选的)来设置tabBarItem对于每个视图控制器viewDidLoad,即:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; // Be a good citizen! 
    self.tabBarItem = [[UITabBarItem alloc] init...]; 
    ... 
+0

我个人认为,每个视图控制器设置自己的标题和图像会更好。我在每个视图控制器的'viewDidLoad'方法(或'init'方法)中执行此操作。但无论哪种方式的作品 – rmaddy

+0

编辑,谢谢! – Undo

1

您可以设置的TabBar项为每个视图与代码

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];