uinavigationcontroller 导航栏始终隐藏
Posted
技术标签:
【中文标题】uinavigationcontroller 导航栏始终隐藏【英文标题】:uinavigationcontroller navigation bar always hidden 【发布时间】:2012-03-19 20:32:34 【问题描述】:我正在使用最新的 SDK 和 XCode 4.2 开发一个 ios 4 应用程序。
我正在使用 UINavigationController,但我不想显示导航栏。为此,我在 AppDelegate 上使用此代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease];
else
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil] autorelease];
navController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
navController.navigationBar.hidden = YES;
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
return YES;
但是,navController.navigationBar.hidden = YES;
这一行不起作用。我在第一个视图控制器上看不到导航栏,但我在其他视图上看到它。
有什么线索吗?
【问题讨论】:
【参考方案1】:我通过以下方式实现了这一目标:
-
设置
navController.NavigationBar.hidden = YES
;在 AppDelegate 中,分配后。
在我推送到 navController 的每个 viewController 上将 [navController setNavigationBarHidden:YES animated:YES];
设置为 viewWillAppear:
。
【讨论】:
【参考方案2】:试试
[navController setNavigationBarHidden:YES animated:NO]
文档是here。
【讨论】:
不是最干净的解决方案,但尝试在“ViewController”类的 viewWillAppear 中调用 [self.navigationController setNavigationBarHidden:YES animated:NO]。【参考方案3】:我认为导航栏必须在视图上设置为隐藏,而不是在控制器上。
【讨论】:
是的,但如果我这样做,我会看到导航栏占用的空间是空的。换句话说,我隐藏了导航栏,但它留下了一个空白空间(视图不适合整个屏幕)。 确保视图控制器的视图 autoResizingMask 设置为允许灵活高度。以上是关于uinavigationcontroller 导航栏始终隐藏的主要内容,如果未能解决你的问题,请参考以下文章
uinavigationcontroller 导航栏始终隐藏
UIViewController 呈现 UINavigationController - 没有导航栏?