2010-04-15 35 views
18

Ho utilizzato UIViewController se initWithNibName con molto successo, praticamente usandoli come un modo conveniente di progettare la vista con Interface Builder. Purtroppo ho costruito una gerarchia di punti di vista prima di notare questa linea nella documentazione UIViewController:Come caricare un UIView da una NIB?

Nota: Non si deve usare vista controller per gestire le viste che riempiono solo una parte del loro finestra

La mia domanda è questa: Avere un NIB molto semplice che ha solo un UIView in aggiunta al First Responder predefinito e all'oggetto proprietario, qual è il modo più semplice per caricare il UIView nel mio codice?

Non sono riuscito a far funzionare loadNibNamed:owner:options: a questo punto, ma sospetto che la risposta lo coinvolgerà in qualche modo.

risposta

29

Sì, basta chiamare

[[NSBundle mainBundle] loadNibNamed:@"viewNib" owner:self options:nil]; 

si fa normalmente questo dal controller della vista che avete impostato come proprietario del file nel pennino. In questo modo, è possibile dichiarare una presa per la vista nel controller della vista che verrà automaticamente connessa quando si carica il file NIB. In questo caso non è nemmeno necessario lavorare con il valore di ritorno del metodo.

+0

Grazie, mi mancava la parte 'mainBundle' – Winder

+1

Ciao, una domanda veloce: questo approccio gestisce il caso di avere una classe CustomView? Se il proprietario del file è il controller di visualizzazione, da cui viene inizializzata la vista, in che modo posso effettivamente collegare tutti gli elementi del pennino (come MyLabel) agli IBOutlet della classe CustomView? – aneuryzm

+0

Solo la classe della vista per la classe personalizzata in IB e quindi collegare le prese. Nessuna differenza rispetto a quello che faresti sempre. –

Problemi correlati