在 UITableViewController 中设置导航栏颜色。
Posted
技术标签:
【中文标题】在 UITableViewController 中设置导航栏颜色。【英文标题】:Setting navigation bar color in UITableViewController. 【发布时间】:2014-04-06 06:31:41 【问题描述】:我有一个相当简单的应用程序,其中包含 UITableViewController
和 UINavigationController
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
OverviewTableViewController *overview = [[OverviewTableViewController alloc] initWithNibName:@"OverviewTableViewController" bundle:nil];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:overview];
self.window.rootViewController = nav;
[self.window makeKeyAndVisible];
return YES;
在我的OverviewTableViewController
中,我尝试像这样为导航栏设置颜色,但它似乎不起作用
self.navigationController.navigationBar.tintColor = [UIColor blueColor];
self.navigationController.navigationBar.translucent = TRUE;
我知道我可以在didFinishLaunchingWithOptions
这样做:
nav.navigationBar.tintColor = [UIColor blueColor];
nav.navigationBar.barTintColor = [UIColor blueColor];
nav.navigationBar.translucent = YES;
如何在我的UITableViewController
中执行此操作?
【问题讨论】:
【参考方案1】:在你的 OverviewTableViewController
的 viewDidLoad 中
- (void)viewDidLoad
[super viewDidLoad];
UIColor *bg = [UIColor blueColor];
[self.navigationController.navigationBar setBarTintColor:bg];
[self.navigationController.navigationBar setTranslucent:YES];
[self.navigationController.navigationBar setBarStyle:UIBarStyleBlack]
【讨论】:
谢谢,这行得通,虽然半透明似乎不起作用,但我认为这与这个问题无关。 是的.. 只是将条形样式设置为黑色。 [self.navigationController.navigationBar setBarStyle:UIBarStyleBlack]?编辑答案。【参考方案2】:在您的OverviewTableViewController
中,您可以使用self.navigationController
引用navigationController。
所以,你可以使用下面的代码。
UINavigationController *nav = self.navigationController;
nav.navigationBar.tintColor = [UIColor blueColor];
nav.navigationBar.barTintColor = [UIColor blueColor];
nav.navigationBar.translucent = YES;
【讨论】:
以上是关于在 UITableViewController 中设置导航栏颜色。的主要内容,如果未能解决你的问题,请参考以下文章
在 UINavigationController 中显示 UITableViewController
在 UIPopoverController 中显示 UItableViewController
在 UITableViewController 中没有调用 viewWillAppear?