2012-03-19 22 views
5

Sto provando a impostare lo sfondo per un numero di UITableViews che vengono caricati all'interno di un UINavigationController. Sto usando il proxy dell'aspetto aggiunto in iOS 5 ma non funziona come mi aspetto.L'aspetto di UITableView con ios5 UIA non funziona correttamente?

L'app utilizza un UISplitViewController, con la vista principale come UINavigationController. All'interno di questo, ho una sottoclasse UITableViewController chiamata PBMasterTableViewController. Nel mio AppDelegate ho il seguente:

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

Questo sta lavorando bene, e il mio menu principale nella vista divisa ha lo sfondo che voglio.

Da questo menu principale, I 3 altri sottolimitabili UITableViewController che vengono inseriti nel controller di navigazione quando seleziono le righe pertinenti. Non riesco tuttavia a cambiare lo sfondo di queste tabelle usando il proxy dell'aspetto. Sto cercando il seguente:

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

Questo è anche nel AppDelegate proprio sotto il codice precedentemente dimostrato che funziona (senza la ripetizione dell'immagine creazione della vista però), ma questo non fa semplicemente niente! Quando spingo un'istanza di PBTwitterTableViewController sul controller nav, ottengo semplicemente una vista tabella standard senza modifiche di background.

So che potrei semplicemente cambiare le visualizzazioni di sfondo nella tabellaViewControllers stessi, tuttavia non voglio che questi sfondi siano lì quando il menu viene mostrato nel popover splitViewControllers quando viene ruotato su portait, quindi sto cercando di usare appearanceWhenContainedIn:

Inoltre, non desidero semplicemente impostare l'aspetto in modo che sia quando è contenuto in UISplitViewController, poiché in 2 istanze ho un UITableView caricato nella sezione dettagli, quindi questo cambierebbe l'aspetto di quelli che Non voglio.

C'è un altro modo per farlo senza il proxy dell'aspetto che mi permetterà comunque di cambiare lo sfondo per quando è nel popover, o c'è un modo per farlo funzionare con il proxy, o mi manca? qualcosa di stupido?

Grazie

EDIT:

Ho appena cercato di creare una sottoclasse del UINavigationController e provato ad utilizzare [[UITableView appearanceWhenContainedIn:[PBMenuNavigationController class], nil] setBackgroundView:bgView]; che è di nuovo lavorando bene per il menu principale, ma non per qualsiasi altro UITableView inseriti nello stack , quindi sono davvero stordito ora :(

risposta

1

OK lo ha ordinato, basta farlo all'interno di ogni vista e controllare che il controller genitore non è qualcosa che non voglio.Grazie comunque

Problemi correlati