Как установить backgroundColor (tintColor) на UINavigationController
Я надеюсь, что вы можете помочь мне установить цвет фона моего контроллера.
Странно то, что когда я строю свой код в Xcode 4.5.2, он выглядит как на картинке ниже. Как вы можете видеть, цвет фона исчез, он должен быть (желтым), как на следующем рисунке.
Когда я строю свой код в 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 для разработчиков