【问题标题】:iOS 7 - TabBarController does not have text labeliOS 7 - TabBarController 没有文本标签
【发布时间】: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;
}

我错过了什么?

【问题讨论】:

    标签: ios uitabbarcontroller


    【解决方案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];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-11
      • 2014-05-03
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 2015-02-20
      • 2012-09-17
      相关资源
      最近更新 更多