Как установить backgroundColor (tintColor) на UINavigationController

Я надеюсь, что вы можете помочь мне установить цвет фона моего контроллера.

Странно то, что когда я строю свой код в Xcode 4.5.2, он выглядит как на картинке ниже. Как вы можете видеть, цвет фона исчез, он должен быть (желтым), как на следующем рисунке.Сборка с Xcode 4.5.2

Когда я строю свой код в Xcode 4.3.3, он выглядит как на картинке ниже. И вот как это должно выглядеть.Сборка с Xcode 4.3.3

Мой код такой:

------------------ Файл InstantCabAppDelegate.m -----------START-------

//InstantCabAppDelegate.m file

orderController = [[OrderController2 alloc] initWithNibName:@"Order2" bundle:nil];
UINavigationController* firstnavigationController = [[UINavigationController alloc] initWithRootViewController:orderController];

------------------ Файл OrderController2.m -----------START-------

//OrderController2.m file

- (void)viewDidLoad 
{   
    [super viewDidLoad];

    [self.tableView setBackgroundColor:TABLE_VIEW_BACKGROUND_COLOR];
    [self.tableView setSeparatorColor:TABLE_VIEW_SEPARATOR_COLOR];
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];

    self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background-nologo"]];

    UIView *logoParentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 75)];
    UIImageView *logoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo_order_page"]];
    CGRect logoViewFrame = logoView.frame;
    logoViewFrame.origin.x = (self.view.frame.size.width / 2) - (logoViewFrame.size.width / 2);
    logoViewFrame.origin.y = 8;
    [logoView setFrame:logoViewFrame];
    [logoParentView addSubview:logoView];

    self.tableView.tableHeaderView = logoParentView;
    self.tableView.rowHeight = 50;

    [self.navigationController.navigationBar setTintColor:NAVIGATION_BAR_TINT_COLOR];

    [[MyLocation singleton] setDelegate:self];
    [self reset];

    UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 50)];

    UIButton *orderButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [orderButton setFrame:CGRectMake(5, 0, footerView.frame.size.width - 10, 50)];

    [orderButton setBackgroundImage:[UIImage imageNamed:@"yellow_btn"] forState:UIControlStateNormal];
    [orderButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [orderButton setTitle:AMLocalizedString(@"kOrderOrderTaxiAlt", @"") forState:UIControlStateNormal];

    [[orderButton titleLabel] setFont:[UIFont boldSystemFontOfSize:orderButton.titleLabel.font.pointSize]];
    [orderButton addTarget:self action:@selector(checkOrder) forControlEvents:UIControlEventTouchUpInside];
    [footerView addSubview:orderButton];
    [self.tableView setTableFooterView:footerView];

    isShowingModalViewController = NO;
}

1 ответ

Я получил это от поддержки Apple:

UITableView применяет фоновое представление к себе, когда стиль табличного представления установлен в UITableViewStyleGrouped. Фоновый вид используется для рисования шаблона по умолчанию, связанного с этим видом таблицы стилей, но он также охватывает любой пользовательский цвет фона, который был установлен. Вы можете удалить это фоновое представление, вызвав self.tableView.backgroundView = nil; изнутри viewDidLoad. Это сделает ваш собственный цвет фона снова видимым.

? Apple Inc. | Техническая поддержка Apple для разработчиков

Другие вопросы по тегам