2016-06-11 7 views
19

Ich habe versucht, eine benutzerdefinierte Klasse meiner Table View Zelle hinzuzufügen, aber nachdem ich es hinzugefügt gibt es folgende Fehlermeldung:Einführungs-Bildschirme können nicht benutzerdefinierte Klassennamen gesetzt

enter image description here

Ich lese oft, dass ich kann‘ t verwenden benutzerdefinierte Klassen in der LaunchScreen, aber ich habe diese Datei nicht berührt. Kann mir jemand helfen?

enter image description here

Dies sind meine allgemeinen Einstellungen für die Haupt- und die Einführung Schnittstelle.

Ich verwende Swift.

+0

Versuchen Clean Build Cmd + Option + K. Möglicherweise haben Sie eine benutzerdefinierte Klasse für den Startbildschirm hinzugefügt und nach einiger Zeit entfernt. –

+0

@Yash: Nein, das würde nicht funktionieren. Sie dürfen keine benutzerdefinierte Klasse in der Launch Screen-Datei verwenden. Anstatt diese Datei als VC zu behandeln, betrachten Sie sie als ein statisches Bild. –

+0

@Bishal Ghimire Ich weiß, wir sind nicht erlaubt das ist der Screenshot zeigt auch in der Post, aber es ist auch eine XIB-Datei, also möglicherweise benutzerdefinierte Klasse versehentlich vom Benutzer hinzugefügt. –

Antwort

37

Gehen Sie zu den Eigenschaften Ihres Main.storyboard und überprüfen Sie, dass Use as Launch Screen nicht ausgewählt ist. Es klingt, als hättest du es versehentlich gewählt.

enter image description here

+0

Omg danke Mann, jetzt funktioniert es gut. Ich kann nicht für Ihren Posten stimmen, weil ich nicht genug Punkte habe, aber fühle mich abgestimmt. – Genfood

+0

großer Mann. Danke vielmals –

4

Ich habe immer einen separaten Begrüßungsbildschirm, der die erste View-Controller-App lädt. Splash Screen Storyboard

Dies ist die Datei, wo Sie alle Geschäfts logische oder Anzeige Spinner/loader usw.

Dazu hinzufügen möchten Sie einrichten Deployment Ziel des Projekts, wie gezeigt haben zu arbeiten. Target Deployment info

Beachten Sie, dass Sie LaunchScreen keine andere benutzerdefinierte Klasse hinzufügen können. Es ist ein ViewController, der nur angezeigt wird, während die App gestartet wird. In dieser Phase des App-Lebenszyklus wurde noch nichts gestartet. Es ist fast wie ein statisches Bild (Es war nur ein statisches Bild bis iOS7). Es wurde nur für iOS9 oder XCode 7 gestartet und wurde zu Storyboard geändert, früher war es eine XIB-Datei. Daher können Sie LaunchScreen keine benutzerdefinierten Klassenobjekte hinzufügen, da dies eine Phase ist, in der die App noch geladen oder gestartet werden muss.

+0

Es sieht genau wie Ihr Beispiel aus.Ich habe nichts in die LaunchSreen-Datei eingefügt. Anstelle von Splash.storyboard verwende ich Main.storyboard. – Genfood

+0

@GuteLaune: Ja, Sie können Main.Storyboard verwenden, um Ihre benutzerdefinierten Klassenobjekte hinzuzufügen. Wie ich schon sagte, LaunchScreen File ist wie Static Image. Während sein geladener Code noch nicht ausgeführt wird. Daher ist es nicht sinnvoll, benutzerdefinierte Klassenobjekte hinzuzufügen. Behandle es wie ein Bild mit einem zusätzlichen Feature des automatischen Layouts. –

+0

Ich habe keinen Code in der Startbildschirm-Datei hinzugefügt. Ich habe ein Foto oben im Beitrag hinzugefügt und wenn du siehst, dass ich es mache, wie du gesagt hast, aber ich habe immer noch den Fehler. – Genfood

0

to Go Ihre -> launchScreen.storyboard bekam dann auf Ihre -> Identität und Typen -> das Kontrollkästchen deaktivieren -> Verwendung als Startbildschirm. Ändern Sie es in Allgemein -> App Icons und starten Sie Bilder -> Start Bildschirm Datei Dropdown -> LaunchScreen anstelle von launchScreen.storyboard wird nicht helfen (stop) tun Sie die oben genannten. Stellen Sie sicher, dass alle Ihre Constraints korrekt eingestellt sind. Kopieren Sie einfach die Constraint-Einstellungen von Ihrem Haupt-Storyboard.

2

Um Yashs Kommentar hinzuzufügen, ist dieser Fehler irreführend. Wenn das Feld Benutzerdefinierte Klasse für Ihren ViewController leer ist, sollten Sie auch jedes Objekt in Ihrer Ansicht überprüfen und prüfen, ob die benutzerdefinierten Klassen ebenfalls leer sind. Sie können nicht einmal eine benutzerdefinierte Bezeichnung für die Startseite festlegen.

Das war was mich und dauerte eine Weile, um herauszufinden, hatte eine benutzerdefinierte Klasse auf einem meiner Etiketten versehentlich aus einem Schnitt + einfügen.

Verwandte Themen