UINavigationController 风格

Posted

技术标签:

【中文标题】UINavigationController 风格【英文标题】:UINavigationController Style 【发布时间】:2011-03-21 10:26:13 【问题描述】:

我在代码中创建了 UINavigationController,但我想将样式更改为黑色半透明

FirstViewController *fvc = [[FirstViewControlelr alloc] init];
UINavigationController *navcon = [[UINavigationController alloc] init];
navcon.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
[navcon pushViewController:fvc animated:NO];
[self.window addSubview:navcon.view];
[self.window makeKeyAndVisible];
return YES;

但他没有改变。请帮帮我!

【问题讨论】:

【参考方案1】:

我怀疑这与您正在访问导航控制器的导航控制器这一事实有关。您的导航控制器不在另一个导航控制器中,因此您正在设置不存在的东西的栏样式。

你想要这个:

navcon.navigationBar.barStyle = UIBarStyleBlackTranslucent;

您还可以制作一个导航控制器并立即使用根视图控制器对其进行初始化,这样您就不必手动将其推入,如下所示:

FirstViewController *fvc = [[FirstViewController alloc] init];
UINavigationController *navcon = [[UINavigationController alloc] initWithRootViewController:fvc];
[fvc release];

navcon.navigationBar.barStyle = UIBarStyleBlackTranslucent;

[self.window addSubview:navcon.view];
[self.window makeKeyAndVisible];

return YES;

是的,你忘了在你自己的代码中释放fvc

【讨论】:

以上是关于UINavigationController 风格的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController '菜单'

关闭 UINavigationController 并呈现另一个 UINavigationController

iOS:如何在现有 UINavigationController 中打开另一个 UINavigationController?

带有主 UINavigationController 和详细 UINavigationController 的 UISplitViewcontroller

带有 UINavigationController 的 UITabBarController,在 hidesBottomBarWhenPushed 上隐藏 UINavigationController

在 UINavigationController 内的 UITabBarcontroller 中添加 UINavigationController?