Domanda

Ho una vista principale con un controllore associato. Ho alcune barre degli strumenti piuttosto complicata che ho bisogno di cambiare e uscire a seconda interazione con l'utente.

Per mantenere le cose semplici gestisco le barre degli strumenti con il mio controller della vista principale, piuttosto che avere tutti i tipi di dipendenze o catene intrecciate delegati davvero profondi.

In ogni caso, come posso avere più viste in uno XI ter e li correttamente inizializzata? Come se voglio visualizzare uno dei miei visualizzazioni personalizzate nel centro dello schermo, come avrei dovuto farlo?

In alternativa, se mi separo i punti di vista in più xibs, come posso averli riferimento allo stesso oggetto controller per i loro IBOutlets / IBActions?

È stato utile?

Soluzione

  

In ogni caso, come posso avere più viste   in uno XI ter e inizializzare   propriamente? Come se voglio visualizzare   uno dei miei visualizzazioni personalizzate nel centro   dello schermo, come potrei farlo?

Si possono avere molti UIViews come si desidera nella vostra XI ter. Di solito ti fanno uno la vista "primario" - quello che è collegato alla proprietà vista del proprietario del file (vale a dire il vostro controller della vista) - e il resto può sedere nel XI ter allo stesso livello. È possibile collegare ad altre proprietà nel controllore vista pure.

Si potrebbe fare questi punti di vista come subviews per la visualizzazione principale. (Pochi, che è un sacco di vista). Diciamo che avere due viste, FooView e BarView. Si vuole FooView ad assistere all'avvio. Quindi, è sufficiente impostare BarView per essere nascosto in IB. Allora il tuo controller della vista potrebbe essere simile a questo:

@interface MyViewController : UIViewController
{
    FooView* fooView;
    BarView* barView;
    ...
}
...
@property (nonatomic, retain) IBOutlet FooView* fooView;
@property (nonatomic, retain) IBOutlet BarView* barView;
...

Poi, all'interno del codice, quando si desidera cambiare visualizzazione, basta utilizzare il metodo setHidden: per nascondere uno e mostrare l'altro.

  

In alternativa, se mi separo i punti di vista   in più xibs, come posso avere   li riferimento alla stessa controllore   oggetto per le loro IBOutlets / IBActions?

Si possono avere altri xibs che condividono lo stesso controller della vista. Ho fatto un sacco di me. Basta impostare il file proprietario nella classe appropriata.

Altri suggerimenti

In realtà è molto semplice. Basta creare una nuova visione a livello principale nel file XIB e creare un IBOutlet per questa vista nel vostro controller della vista principale.

Per quanto riguarda la vista di carico direttamente dal XIB di, che condividono lo stesso controller della vista, che è un po 'più sciatta .. avresti essenzialmente bisogno di ciclo tra gli elementi del file XIB e trovare l'elemento che stai cercando.

Una cosa da notare da questo approccio è che tutti i punti di vista ottenere inizializzato quando sono necessari una qualsiasi delle viste.

Se le vostre opinioni sono semplici questo potrebbe non importa, ma se si ha una vista complesse, questo potrebbe rendere l'applicazione lento a caricare.

Se la vista è piuttosto complesso, si dovrebbe dividerli in diversi file .xib. In questo caso la UIViewController genitore avrebbe IBOutlets alle altre sottoclassi UIViewController piuttosto che IBOutlets a UIViews. I controller di vista gestirà automaticamente il lazy-caricamento dei rispettivi vista.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top