我正在尝试以编程方式创建UITabBarController。这似乎工作,我有2个选项卡,问题是它在第一次加载时没有显示RootViewController中的第二个选项卡标题。怎么样?
这是在加载RootViewController时:
当我点击没有标题的第二个标签时,会出现标题:
当我返回时,第二个标题标题仍然存在:
我的问题是为什么在加载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];
答案 0 :(得分:0)
向视图控制器添加标题:
firstTab.title = @"Title to display 1";
secondTab.title = @"Title to display 2";
答案 1 :(得分:0)
您应该使用initialize
方法设置TabBar标题,而不是ViewDidLoad
,viewDidAppear
..
- (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的任何地方设置断点来自行检查。