我一直在努力解决这个问题。我让它工作了,但不是它应该的方式,我猜是因为我做错了。我的目标是具有以下布局。
我有一个带有四个按钮的主菜单。单击每个会显示不同的 TableView(我应该在 navController 的右上角有一个后退按钮,以便能够返回主菜单,但我没有)。这些 TableView 中的每一个都在 UITabBarController 内(看起来像这样http://i.stack.imgur.com/GkFwo.jpg)
那么我该怎么做呢?
这是我当前的代码(在某些时候肯定是错误的)
- (IBAction)MyButton:(id)sender
{
self.tabBarController = [[UITabBarController alloc] init];
UIViewController *viewController1, *viewController2, *viewController3, *viewController4;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
viewController1 = [[[LexikonControllerViewController alloc] initWithNibName:@"LexikonControllerViewController" bundle:nil] setArrays:PflanzenIDs List:ListOfPlants Index:IndexOfPlants dict:DictionaryOfPflantsAndIDs];
}
UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:viewController1];
NSArray* controllers = [NSArray arrayWithObjects:navController1, nil];
self.tabBarController.viewControllers = controllers;
CGRect frame = self.tabBarController.view.frame;
frame.size.height = frame.size.height - 20;
self.tabBarController.view.frame = frame;
[self.view addSubview:self.tabBarController.view];
}
编辑:
现在我尝试了这个: - (void)applicationDidFinishLaunching:(UIApplication *)application {
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
vc = [[MyViewController alloc] init];
[vc setTitle:@"Home"];
[vc setParent:self];
navController = [[UINavigationController alloc] initWithRootViewController:vc];
UITabBarController *tb = [[UITabBarController alloc] init];
NSArray *controllers = [[NSArray alloc] initWithArray:[NSArray arrayWithObjects:navController, nil]];
tb.viewControllers = controllers;
[window addSubview:[tb view]];
[window makeKeyAndVisible];
}
问题:在主视图(使用主菜单)上,我可以看到标签栏(不应该在那里)并且使用 hidesBottomBarWhenPushed 在所有其他视图上完全隐藏标签栏:(