UITabBarController不显示其他选项卡的标题

时间:2014-02-25 14:13:00

标签: ios iphone objective-c

我正在尝试以编程方式创建UITabBarController。这似乎工作,我有2个选项卡,问题是它在第一次加载时没有显示RootViewController中的第二个选项卡标题。怎么样?

这是在加载RootViewController时:

enter image description here

当我点击没有标题的第二个标签时,会出现标题:

enter image description here

当我返回时,第二个标题标题仍然存在:

enter image description here

我的问题是为什么在加载RootViewController时它没有显示。

我在didFinishLaunchingWithOptions中的appDelegate方法:

tabBarController = [[UITabBarController alloc] init];

MenuViewController *firstTab = [[MenuViewController alloc] initWithNibName:@"MenuViewController" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:firstTab];


FixtureViewController *secondTab = [[FixtureViewController alloc] initWithNibName:@"FixtureViewController" bundle:nil];
UINavigationController *navController2 = [[UINavigationController alloc] initWithRootViewController:secondTab];


self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[navController, navController2];

[self.window setRootViewController:tabBarController];

3 个答案:

答案 0 :(得分:0)

向视图控制器添加标题:

firstTab.title = @"Title to display 1";
secondTab.title = @"Title to display 2";

答案 1 :(得分:0)

您应该使用initialize方法设置TabBar标题,而不是ViewDidLoadviewDidAppear ..

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.tabBarItem.title = @"Tabbar Title";
    }
    return self;
}

答案 2 :(得分:0)

您应该覆盖第一个/第二个viewController上的tabBarItem属性,而不是在RootViewController中指定title属性。你可以懒得加载它......

如果在viewDidLoad()覆盖中设置title属性,则在视图控制器实际加载并且实际调用viewDidLoad()之前,它不会被应用。您可以通过在设置title / tabBarItem的任何地方设置断点来自行检查。