У меня есть приложение панели вкладок (UITabBarController) с «Больше» View Controller из-за наличия более 5 представлений. У остальной части моего приложения черный фон и белый текст, и я смог настроить эту таблицу в соответствии с этим. Однако в результате этого изображения панели вкладок, которые обычно отображаются в левой части таблицы «Еще», невидимы (поскольку они предназначены для белого фона). Мне нужно найти способ отображения изображений на панели вкладок так же, как на панели вкладок, которая сама имеет черный фон.
Пример:
Черный фон (Невидимые изображения)
Я переклассифицировал TabBarController и изменил источник данных для «MoreTableView»:
TabBarController.m
- (void)viewDidLoad {
[super viewDidLoad];
UINavigationController *moreController = self.moreNavigationController;
moreController.navigationBar.barStyle = UIBarStyleBlackOpaque;
if ([moreController.topViewController.view isKindOfClass:[UITableView class]])
{
UITableView *view = (UITableView *)moreController.topViewController.view;
view.separatorColor = [[UIColor alloc] initWithRed:0.3 green:0.3 blue:0.3 alpha:1.0];
view.backgroundColor = [UIColor blackColor];
view.dataSource = [[MoreTableViewDataSource alloc] initWithDataSource:view.dataSource];
}
}
MoreTableViewDataSource.m
-(MoreTableViewDataSource *) initWithDataSource:(id<UITableViewDataSource>) dataSource
{
originalDataSource = dataSource;
[super init];
return self;
}
- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section
{
return [originalDataSource tableView:table numberOfRowsInSection:section];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [originalDataSource tableView:tableView cellForRowAtIndexPath:indexPath];
cell.textColor = [[UIColor alloc] initWithRed:1 green:0.55 blue:0 alpha:1.0];
cell.accessoryView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"customAccessory.png"]];
return cell;
}
Заранее спасибо,
Джулиан