È possibile impostare un controller di navigazione e una vista principale. Quindi puoi utilizzare una vista modello per i layout verticale e orizzontale (2 visualizzazioni aggiuntive).
Sarà necessario impostare i controlli sulla vista principale e assicurarsi che ognuno abbia un tag univoco. La tua vista principale non verrà utilizzata, ma copierai i controlli nelle due viste del modello e li imposterai in base a come vuoi che ogni vista sia vista. Il vantaggio di ciò è che ciascuna vista conserverà il proprio tag che diventa un elemento molto importante di questa implementazione.
In questo modo si utilizza un approccio ibrido per quanto riguarda la scrittura di alcuni codici UI e l'utilizzo di Interface Builder. Dopo aver ottenuto la configurazione dei due modelli, crea un identificativo univoco per ognuno. Dovrai scrivere una logica per gestire la vista e le sue sottoview. Un metodo ricorsivo per restituire una raccolta di questi in base al modello scelto.
La logica di base nell'implementazione del controller di visualizzazione radice dovrà controllare isPortrait e in base a ciò sarà necessario caricare la vista corretta in base all'identificatore.
Sperimenta con questo concetto e verifica se funziona per te. I principali vantaggi di non utilizzare due viste separate con controlli univoci (non l'approccio condiviso con gli stessi tag) è che si mantenga l'accesso ai subview degli originali. Qualsiasi variabile di istanza definita nel controller della vista che punta a un testo archiviato, un'etichetta, ecc ... continua a farlo indipendentemente dalla vista del modello utilizzata. Ciò mantiene il modello, la vista, l'approccio del controllore man mano che la struttura dei dati rimane invariata.
Utilizzando questo approccio è ancora possibile ottimizzare l'utilizzo del generatore di interfacce e layout dei modelli per ogni vista, pur avendo la flessibilità di scrivere un codice UI personalizzato, se lo si desidera. L'utilizzo del solo builder di interfacce può essere un po 'limitativo a volte e scrivere un codice personalizzato basato sull'orientamento ti blocca in un po' di noioso lavoro.
Spero che questo aiuti alcuni.
approccio interessante. Ci proveremo. Grazie – Korbi
Cosa succede se usi IBOutlet, quelli possono essere assegnati solo a una vista. – Paranaix
@Paranaix Potrei non capire completamente il tuo commento. La domanda originale pone l'esigenza di avere interfacce diverse per la modalità orizzontale e verticale. Se stai cercando un layout diverso per la stessa interfaccia, si tratta di un problema diverso. Forse dovresti porre una domanda completamente nuova. –