在 UITableViewController 中设置导航栏颜色。

Posted

技术标签:

【中文标题】在 UITableViewController 中设置导航栏颜色。【英文标题】:Setting navigation bar color in UITableViewController. 【发布时间】:2014-04-06 06:31:41 【问题描述】:

我有一个相当简单的应用程序,其中包含 UITableViewControllerUINavigationController

- (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 中设置导航栏颜色。的主要内容,如果未能解决你的问题,请参考以下文章

在导航栏中使用 UITableViewController

在 UINavigationController 中显示 UITableViewController

在 UIPopoverController 中显示 UItableViewController

在 UITableViewController 中没有调用 viewWillAppear?

如何在 UITableViewController 中显示 MSMutableArray 数据?

没有在 UITableViewController 中调用 DidSelectRowAt