2015-08-07 10 views
34

Ho creato una semplice applicazione utilizzando Xcode 7 Beta 2. L'applicazione contiene semplicemente la classe MyAppDelegate, MyViewController, MyMain.storyBoard e MyLaunchScreen.storyboard. Dopo aver ricompilato l'applicazione con Xcode 7 Beta 4, viene visualizzato l'errore "Avvio schermate potrebbe non impostare nomi di classi personalizzati". Eventuali suggerimenti?XCode 7: schermate di avvio non possono impostare nomi di classi personalizzati

+5

trovato la soluzione: avevo bisogno di aprire il mio file di story board schermata di avvio e rimuovere la classe personalizzata nella finestra di ispezione identità. Non è più possibile utilizzare classi personalizzate per le schermate di avvio. – Awsed

risposta

37

Si noti che la schermata di avvio non è un controller di visualizzazione completamente personalizzabile. Non è possibile specificare un nome di classe personalizzato nello storyboard e si aspetta che il sistema ti dia la possibilità di eseguire il codice in questa fase chiamando viewDidLoad. Ricorda, l'app non è ancora stata lanciata.

Vincoli schermo lancio

  • Il sistema carica il file schermata di avvio prima di lanciare l'applicazione che crea alcuni vincoli su ciò che può contenere (alcune delle quali possono costringere di nuovo a file di immagini statiche):
  • l'applicazione non è ancora caricato in modo che la gerarchia della vista non esiste e il sistema non può chiamare qualsiasi codice di impostazione del controller visualizzazione personalizzata si può avere in app (ad es viewDidLoad)
  • è possibile utilizzare solo le classi UIKit standard, in modo da poter utilizzare UIView o UIViewController ma no t una sottoclasse personalizzata. Se si tenta di impostare una classe personalizzata si otterrà un errore di configurazione illegale in Xcode.
  • Il file della schermata di avvio può utilizzare solo visualizzazioni UIKit di base come UIImageView e UILabel. Non è possibile utilizzare UIWebView.
  • Se si utilizza uno storyboard, è possibile specificare più controller di visualizzazione ma esistono ancora alcune limitazioni. Ad esempio, è possibile incorporare i controller di visualizzazione in un controller di navigazione o barra delle linguette, ma classi di contenitori più complesse come UISplitViewController non funzionano (almeno non ancora).
  • La localizzazione del file della schermata di avvio al momento non sembra avere alcun effetto. La localizzazione di base è sempre usata, quindi probabilmente vorrai evitare il testo sulla schermata di avvio.
  • Non è possibile specificare diversi file di schermata di avvio per iPad e iPhone. Questo potrebbe essere un problema se si dispone di interfacce significativamente diverse per tali dispositivi, in quanto c'è solo molto che si può fare con il layout automatico e le classi di dimensioni.

Se si sta distribuendo su iOS 7, sarà comunque necessario includere i file di immagine di avvio statici. È possibile includere sia un file di schermata di avvio sia immagini di avvio statico. Dispositivi come l'iPhone 6 con iOS 8 userà il file della schermata di avvio mentre i dispositivi iOS 7 torneranno alle immagini di avvio.

Per maggiori dettagli clicca here

7

Passare attraverso la visualizzazione controller in Main.storyboard e assicurarsi che non si dispone di uno che è sia insieme ad una classe personalizzata:

enter image description here

e ha "è View controller iniziale" controllato:

enter image description here

È possibile eseguire solo l'uno o l'altro. In qualche modo ho avuto "Is Initial View Controller" ancora controllato per errore, e mi ci è voluto un po 'per cacciarlo!

25

Questa è una risposta semplice, ma qualcosa che ho fatto e non lo sapevo nemmeno. Penso che con iOS 7 ci sia ora una main.storyboard e una launchscreen.storyboard. Stavo involontariamente cercando di costruire il mio schermo funzionale iniziale sulla schermata di avvio screen.storyboard. Questo è un no no

Spero che questo aiuti e felice codifica!

4

Di recente ho creato un'app utilizzando la versione beta di Xcode 8 ma non ho potuto inviarla all'app store utilizzando il software beta. Ho avuto lo stesso messaggio di errore: "Le schermate di avvio non possono impostare nomi di classi personalizzati" e molti altri.

La mia soluzione: Vai a File Inspector dello storyboard principale e deseleziona l'opzione Usa come schermata di avvio. Semplice, vero? Spero che questo funzioni anche per te.

Here's an image of what to look for

Problemi correlati