2012-03-19 11 views
5

Próbuję ustawić tło dla wielu UITableViews, które są ładowane wewnątrz UINavigationController. Używam proxy wyglądu dodanego w systemie iOS 5, ale nie działa w taki sposób, jak tego oczekuję.Wygląd UITableView z UIAppearance ios5 nie działa poprawnie?

Aplikacja używa kontrolera UISplitViewController, a widok główny jest kontrolerem UINavigationController. Wewnątrz mam podklasę UITableViewController o nazwie PBMasterTableViewController. W moim AppDelegate Mam następujący:

UIImageView *bgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menuBg.png"]] autorelease]; 
    [[UITableView appearanceWhenContainedIn:[PBMasterTableViewController_Ipad class], nil] setBackgroundView:bgView]; 

ten pracuje bez zarzutu, a moim głównym menu w widoku podzielonym ma tło, które chcę.

Z tego menu głównego, I 3 inne sublasses UITableViewController, które są popychane na kontroler nawigacji po wybraniu odpowiednich wierszy. Nie mogę jednak zmienić tła tych tabel za pomocą proxy wyglądu. Staram się, co następuje:

UIImageView *bgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menuBg.png"]] autorelease]; 
    [[UITableView appearanceWhenContainedIn:[PBTwitterTableViewController class], nil] setBackgroundView:bgView]; 

Jest to również w appDelegate tuż pod kodem poprzednio przedstawionego, który działa (bez powtarzania tworzenia zobaczyć obraz jednak), ale to po prostu nic nie robi! Kiedy wypycham instancję PBTwitterTableViewController na kontroler nawigacyjny, po prostu otrzymuję standardowy widok tabeli bez zmiany tła.

Wiem, że mógłbym po prostu zmienić widoki tła w samej tableViewController, ale nie chcę, aby te tła były tam, kiedy menu jest wyświetlane w popover splitViewControllers po obróceniu do portretowania, dlatego próbuję użyć wyglądWhenContainedIn:

Nie chcę też po prostu ustawić wyglądu, jaki ma być, gdy jest zawarty w UISplitViewController, ponieważ w 2 przypadkach mam załadowany widok UITableView do sekcji szczegółów, więc to by zmieniło wygląd tych, które Nie chcę.

Czy istnieje inny sposób robienia tego bez proxy wygląd, który nadal pozwoli mi zmienić tło dla kiedy jest w popover, czy jest jakiś sposób, aby to działało z proxy, lub po prostu brakuje mi coś głupiego?

Dzięki

EDIT:

Właśnie próbował tworząc podklasę UINavigationController i spróbował wykorzystać [[UITableView appearanceWhenContainedIn:[PBMenuNavigationController class], nil] setBackgroundView:bgView]; który znowu działa dobrze do menu głównego, ale nie w żadnym innym UITableView odkładany na stos , więc jestem bardzo zakłopotany teraz :(

Odpowiedz

1

OK rozwiązywało problem. Po prostu robi to wewnątrz każdego widoku i upewnieniu się, że kontroler nadrzędny nie jest coś, że nie chcę. Dzięki anyway

Powiązane problemy