Я пытаюсь установить фон для ряда UITableView, которые загружаются внутри UINavigationController. Я использую внешний прокси, добавленный в iOS 5, но он не работает так, как я ожидаю.
Приложение использует UISplitViewController, при этом основным представлением является UINavigationController.
Внутри этого у меня есть подкласс UITableViewController под названием PBMasterTableViewController.
В моем AppDelegate у меня есть следующее:
UIImageView *bgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menuBg.png"]] autorelease];
[[UITableView appearanceWhenContainedIn:[PBMasterTableViewController_Ipad class], nil] setBackgroundView:bgView];
Это работает нормально, и мое главное меню в режиме разделенного просмотра имеет нужный фон.
Из этого главного меню я 3 других подкласса UITableViewController, которые выдвигаются на контроллер навигации, когда я выбираю соответствующие строки. Однако я не могу изменить фон этих таблиц, используя внешний вид прокси. Я пытаюсь следующее:
UIImageView *bgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menuBg.png"]] autorelease];
[[UITableView appearanceWhenContainedIn:[PBTwitterTableViewController class], nil] setBackgroundView:bgView];
Это также в appDelegate прямо под ранее показанным кодом, который работает (однако, без повторения создания представления изображения), но это просто ничего не делает! Когда я помещаю экземпляр PBTwitterTableViewController на контроллер nav, я просто получаю стандартное табличное представление без изменения фона.
Я знаю, что я мог бы просто изменить фоновые представления в самих tableViewControllers, однако я не хочу, чтобы эти фоны присутствовали при отображении меню в поповере splitViewControllers при повороте на изображение, поэтому я пытаюсь использовать AppearanceWhenContainedIn :
Я также не хочу просто устанавливать внешний вид, когда он содержится в UISplitViewController, так как в 2 случаях у меня есть UITableView, загружаемый в подробный раздел, так что тогда это изменит внешний вид тех, которые я не делаю хочу.
Есть ли другой способ сделать это без внешнего прокси, который все еще позволит мне изменить фон, когда он находится в поповере, или есть способ заставить это работать с прокси, или я просто что-то упустил тупые?
Спасибо
РЕДАКТИРОВАТЬ:
Я только что попытался создать подкласс UINavigationController и попытался использовать [[UITableView appearanceWhenContainedIn:[PBMenuNavigationController class], nil] setBackgroundView:bgView];
, который снова работает нормально для главного меню, но не для любого другого UITableView, помещенного в стек, поэтому я действительно озадачен :(