webentwicklung-frage-antwort-db.com.de

iOS 8: Startbildschirm StoryBoard erscheint schwarz [einzelne XIB-Datei funktioniert gut]

Also habe ich versucht, ein Start-Storyboard für meine iOS 8-App zu erstellen, indem Sie dieses Tutorial verwenden.

Ich bekomme jedoch nur einen schwarzen Bildschirm, wenn ich meine App starte. Eine einzelne Startdatei screen.xib funktioniert einwandfrei. Wenn ich jedoch versuche, ein Storyboard zu verwenden, funktioniert es nicht. 

Ich habe ein Storyboard mit nur einem einzelnen View-Controller ausprobiert, aber es wird immer noch ein schwarzer Bildschirm angezeigt. Daher glaube ich, dass das Problem mit Storyboard-Dateien in meinem Setup zusammenhängt. Irgendwelche Ideen?

[XCode-Version 6.4]

EDIT: Ich möchte nur klarstellen, dass der Startbildschirm schwarz erscheint. Das Haupt-Storyboard selbst wird korrekt angezeigt, wenn die App vollständig geladen wurde 

12
Darvish Kamalia

Lesen Sie das Tutorial durch und testen Sie es, und es sagt nicht zwei Dinge aus:

1: Sie müssen Ihrer .storyboard-Datei eine UIViewController hinzufügen und diese dann als Initial Controller auswählen.

2: Wenn Sie mehr als nur den Startbildschirm ändern möchten, müssen Sie zu den Projekteinstellungen gehen und die "Hauptoberfläche" auf Ihren entsprechenden .storyboard einstellen. 

Wenn Sie dies getan haben, müssen Sie nur noch die UIButton/Label/etc-Verbindungen zu Ihren ViewController-Klassen bearbeiten.

BEARBEITEN:

Zur Verdeutlichung können Sie eine UIView als anfänglichen Controller festlegen, indem Sie sie in der jeweiligen Storyboard-Datei auswählen und dann den Inspector für Attribute öffnen. Die Option für 'Ist Initial Controller' befindet sich in der Mitte.

18
CraftMcMatt

Für Benutzer, die UIImageView im Startbildschirm verwenden

Stellen Sie sicher, dass Sie den Bildnamen ohne Erweiterung im Attributinspektor verwenden.

Wenn Ihre Bilddatei beispielsweise launcher.png heißt, verwenden Sie nur launcher als Bildnamen.

Dadurch wird das Bild im Editor als ungültig (?) Angezeigt, beim Ausführen auf dem Gerät jedoch korrekt.

(Fragen Sie mich nicht, warum es so funktioniert. Fragen Sie Apple.)}

 enter image description here

12
Ehtesham Hasan

Keine der Antworten hat alle erforderlichen Schritte, daher diese erschöpfende Lösung.

Storyboard

Beginnen Sie mit dem Erstellen des LaunchScreen.storyboard . Xcode> Datei> Neu> Datei ...> Storyboard> LaunchScreen.storyboard und fügen Sie es allen entsprechenden Zielen hinzu.
Erstellen Sie in diesem Storyboard einen einzelnen View-Controller vom Typ UIViewController. Mache alle Zaubereien, die dein Startbildschirm erfordert, und folge diesen Schritten:

  1. LaunchScreen.storyboard> Dateiinspektor anzeigen> Als Startbildschirm verwenden
  2. LaunchScreen.storyboard> Controller anzeigen> Inspektor Attribute anzeigen> Ist Initial View Controller
  3. Projekt> Allgemein> Bereitstellungsinformationen> Hauptschnittstelle> LaunchScreen
    Wiederholen Sie dies für [iPhone] und [iPad].
  4. Projekt> Allgemein> App-Symbole und Startbilder> Startbilddatei> LaunchScreen
  5. Bei richtiger Einrichtung sollte Ihre Info.plist LaunchScreen .storyboard ohne .storyboard unter den Eigenschaften UILaunchStoryboardName & UIMainStoryboardFile haben:

    <key>UILaunchStoryboardName</key>
    <string>LaunchScreen</string>
    <key>UIMainStoryboardFile</key>
    <string>LaunchScreen</string>
    

Anmerkungen:

  1. Dies ist not nicht kompatibel mit älteren Bildern für ältere Geräte mit Launch Screen File> Assets .
  2. Achten Sie besonders auf LaunchScreen.storyboard und Main.storyboard. Einer wird zum Starten verwendet, der andere für den Einstiegspunkt Ihrer App. Beide müssen Ist Initial View Controller gesetzt haben.
8
SwiftArchitect

Stellen Sie im Storyboard, das Sie zum Starten verwenden, sicher, dass Sie die Option Ist Initial View Controller für den sehr einzigen Single View Controller ausgewählt haben.

5
Davinder Singh

Ich glaube, ich hatte vielleicht ein ähnliches Problem, das etwas anderes als die obigen Antworten erforderte.

Ich erstellte einen neuen Startbildschirm in einer .storyboard-Datei. Nachdem er nicht angezeigt wurde, wurde eine neue .xib-Datei erstellt, die beim Start der App immer noch nicht angezeigt wurde.

Ich fand heraus, dass einige der Bilder, die ich auf meinem Startbildschirm hatte, eine Outlet-Sammlung zu einer alten .Swift-Datei hatten. Nachdem der Startbildschirm von LaunchScree.xib entfernt wurde, funktionierte der Startbildschirm einwandfrei.

 the broken outlet

Beachten Sie das kleine Warnschild in der Ausgangsreferenz ->  The warning

4
Dom Bryan

Vergewissern Sie sich, dass Sie Ihren Einstiegspunkt festgelegt haben, und tippen Sie in Ihren allgemeinen Informationen darauf, dass Sie die Ansicht für die Größenänderung von der Spitze eingestellt haben. Stellen Sie außerdem sicher, dass in Ihrem allgemeinen Tab der Startpunkt festgelegt ist. In den Bereitstellungsinformationen.

Hoffe das hilft

1
MazzaMan

Ich habe viel zu lange damit verbracht, danke Apple! Ich entdeckte schließlich, dass ich die aktuelle UIImageView-Anzeige in meinem View-Controller löschen musste - nicht nur das Bild -, um zu einem anderen Bild zu wechseln. Es wurde versucht, die Bilder umzubenennen, sie auf verschiedene Weise zu ersetzen, Caches zu löschen, die App vom Gerät zu löschen und vor dem Erstellen eine Bereinigung durchzuführen. Das Originalbild war, soweit ich sehen konnte, von überall verschwunden, würde aber trotzdem erscheinen. Schließlich fügte ich eine neue UIImageView im View-Controller hinzu und dies brachte ein neues Bild. Dann habe ich nur die alte UIImageView gelöscht und alles war in Ordnung.

1
amergin

Ich hatte den schwarzen Bildschirm anstelle meines Splashes, nachdem ich meine App lokalisiert hatte. Im Abschnitt Lokalisierung des Dateiinspektors von LaunchScreen.storyboard hatte ich nur einen Haken für eine Lokalisierung. Also habe ich ein Häkchen für die zweite Lokalisierung hinzugefügt und das Problem behoben.

0

Die Lösung ist, den Bildnamen ohne die Erweiterung png zu verwenden.

Wenn Ihre Bilddatei beispielsweise "img.png" heißt, verwenden Sie nur "img".

Dadurch wird das Bild im Editor als ungültig (?) Angezeigt, beim Ausführen jedoch korrekt angezeigt.

Dies geschieht, weil das LaunchScreen.storyboard nur Bilder in Assets.xcassets akzeptiert und die Art, auf die Bilder in Assets.xcassets zu verweisen, der Name der Ressource ohne Erweiterung ist.

Ich denke, dass die Verwendung des Namens ohne Erweiterung eine Problemumgehung ist, die funktioniert.

0
kennymuse

Haben Sie die Hauptschnittstelle unter "Bereitstellungsinformationen" auf "Haupt" (Storyboard-Name) gesetzt?

0
Avijit Nagare