【发布时间】:2012-06-26 13:10:32
【问题描述】:
我有一个标签栏应用程序。 这是启动代码
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
[self.window makeKeyAndVisible];
self.tabBarController=[[UITabBarController alloc] init];
StartViewController *startViewController=[[StartViewController alloc] initWithNibName:@"StartViewController" bundle:nil];
NavRootViewController *navRootViewController=[[NavRootViewController alloc] initWithNavControllerWithSubViewController:startViewController];
HelpViewController *helpViewController=[[HelpViewController alloc] initWithNibName:@"HelpViewController" bundle:nil];
SettingsViewController *settingsViewController=[[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
AboutUsViewController *aboutUsViewController=[[AboutUsViewController alloc] initWithNibName:@"AboutUsViewController" bundle:nil];
[self.tabBarController setViewControllers:[NSArray arrayWithObjects: navRootViewController, helpViewController, settingsViewController, aboutUsViewController, nil]];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
self.window.backgroundColor = [UIColor whiteColor];
self.window.rootViewController=self.tabBarController;
使用 4 个标签栏标签启动的应用程序。 在用户按下第一个选项卡的导航控制器的根视图控制器中的开始按钮后调用此操作
-(IBAction)startPressed:(id)sender
{
NSLog(@"startPressed: called");
RootViewController *vController=[[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
[self.navigationController pushViewController:vController animated:YES];
}
这很好用,但我需要为我的RootViewController 隐藏标签栏
属性hidesBottomBarWhenPushed 不起作用。
请帮帮我,怎么办?
【问题讨论】:
-
将您的根视图显示为 modalviewcontroller。这将隐藏其下方的 tabBar。
-
你在哪里分配了 hidesBottomBarWhenPushed?
-
@iPhoneDeveloper 如果我调用
[self presentModalViewController:vController animated:YES]标签栏仍然可见。有什么问题。我做错了什么? -
@iPhoneDeveloper 我解决了这个问题。请单独回答您的评论。
-
是的,你必须在窗口而不是 tabBar.m 的视图控制器上添加模态视图,给出下面的答案。
标签: iphone objective-c ios uitabbarcontroller uitabbar