2014-10-21 6 views
12

Utilizzo Interface Builder per creare il file immagine di avvio per iOS 8. L'immagine di avvio che desidero è molto semplice (come l'app Impostazioni, penso) - Barra di navigazione in alto con un TableView vuoto e raggruppato. Nessun titolo, ecc.iOS 8 Lancia file immagine - Barra di navigazione e barra di stato

Nota, normalmente non uso Interface Builder, quindi la cosa di IB è completamente nuova per me.

Sto cercando di ottenere ciò aggiungendo una barra di spostamento e una vista tabella alla vista, quindi configurando i vincoli. I vincoli (e i colori) funzionano correttamente, ma ...

Il problema: l'immagine di avvio viene visualizzata a schermo intero, sulla barra di stato. Come questo:

enter image description here

Come faccio ad avere sia la barra di stato e la barra di navigazione?

Come ho detto, sto lavorando con l'impostazione predefinita "UIView" che si ottiene quando si seleziona l'aggiunta di una schermata di avvio in Xcode. Quindi non c'è un controller di navigazione; è questo il problema?

Inoltre, ci sono alcune opzioni sul UIView che sembrano come dovrebbero darmi quello che voglio:

enter image description here

Ho provato a giocare con le opzioni della barra di stato, ma non è piuttosto funzionante.

  • Devo essere dedotto o predefinito?
  • Vedo un piccolo spostamento tra l'immagine di avvio (barra di stato + barra di navigazione) e l'app effettiva in esecuzione, l'ho appena posizionata in modo errato?
  • Qual è lo scopo dell'opzione Top Bar?
  • Per l'immagine di avvio che desidero, ho anche bisogno di aggiungere un TableView come sottoview, o posso usare il colore di sfondo sul UIView principale? Ho provato quello, ma poi ho una corrispondenza mancata di colori con la barra di stato/barra di navigazione ...

Per un Noob Builder di interfaccia, come faccio a creare un file di schermata di avvio che replica quello dell'app Impostazioni ?

risposta

18

Se si sta utilizzando un file storyboard, è possibile impostare la vista come vista radice in una scena di controller di navigazione. La barra di navigazione di un controller di navigazione si posiziona automaticamente sotto la barra di stato.

Example

Non dimenticare di impostare il controller di navigazione come il controller della vista iniziale (controllando è Initial View Controller nel riquadro proprietà)

Una scena Navigation Controller aggiunge automaticamente una vista tabella controller come controller nidificato quando lo aggiungi allo storyboard.

Se si desidera sostituirlo con un altro controller, è necessario rimuovere il controller di visualizzazione tabella dallo storyboard, aggiungere il controller che si desidera utilizzare allo storyboard e quindi collegarlo (tramite comando + trascinamento dal controller di navigazione per il controller di visualizzazione e quindi selezionando l'uscita rootViewController)

NOTA Gli oggetti (viewcontrollers ecc.) in uno storyboard della schermata di avvio non devono avere alcun set di IBOutlet. Ciò porterà ad errori.

+1

grazie, ha funzionato esattamente come avevo bisogno. Un paio di domande: (1) c'è qualche differenza (prestazioni?) Tra l'uso di uno storyboard e una singola vista per l'immagine di lancio? (2) Presumo che tutti i vincoli siano impostati correttamente? (Verifica bene). Come stavo dicendo, IB è nuovo per me, e usando l'approccio storyboard le cose sembrano nuovamente diverse;) (3) Dato che voglio una barra di navigazione nell'immagine di lancio, è un approccio "migliore", più corretto rispetto all'utilizzo di un vista singola? Dalla mia limitata esperienza sembra che l'aggiunta manuale della barra di navigazione fosse un approccio 'poco pratico'? Saluti. –

+1

(1) Non dovrebbe esserci una differenza prestazionale notevole tra gli storyboard e le singole viste. (3) Il problema con l'utilizzo di un singolo file di visualizzazione è che è più difficile impostare i controller per le viste (che gestiscono il dimensionamento ecc.) Nel file stesso. In uno storyboard è più facile impostare i controller, che consente di delegare il dimensionamento automatico, ecc. Con un solo file di definizione dell'interfaccia, che è adatto alle schermate di avvio. –

+0

@LeonLucardie: ottima idea di usare uno storyboard al posto di un file .xib! Tuttavia, se ci sono eventuali IBOutlet sul controller della vista, si otterrà un'immagine di avvio nera. Vedi [questa risposta] (http://stackoverflow.com/a/29420001/35690) per maggiori dettagli. – Senseful