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 导航栏始终隐藏

UINavigationController导航控制器

UIViewController 呈现 UINavigationController - 没有导航栏?

UINavigationController 没有导航栏?

UINavigationController 自定义模态过渡,导航栏太小

在 UINavigationController 中设置自定义导航栏类