2016-05-03 5 views
1

Ich bin mit Xcode 7.3 für ein Projekt (Mindestimplementierungsziel 8.0)Umgestalten Viewcontrollers - Fehler: Storyboard enthalten beide einen View-Controller mit der gleichen Kennung

Ich habe ein Drehbuch, das in der Größe wächst. Ich dachte daran, zwei (2) Gruppen von Szenen in zwei (2) verschiedene Storyboards umzubauen, indem man Editor -> Refactor To Storyboard ... erstellt und dann zwei Storyboards mit unterschiedlichen Namen erstellt, um die jeweiligen refaktorierten Szenen zu "halten".

Es funktionierte wie erwartet - zwei neue Storyboards (NewStoryBoard1 & NewStoryBoard2), daß ‚statt‘ die beiden Gruppen von Refactoring Szenen.

Wenn ich das Projekt bauen bekomme ich diesen Fehler:

Deploying Storyboard References to iOS 8.0 requires that your storyboards do not share any view controller identifiers. NewStoryBoard1.storyboard and NewStoryBoard2.storyboard both contain a view controller with identifier "UIViewController-knd-7b-mzO".

ich nicht die Kennungen als

UIViewController-knd-7b-mzO

diese scheinbar getan wurde automatisch in Xcode Namen hat.

Meine Frage ist, warum erstellt Xcode zwei Storyboard-Verweise auf zwei verschiedene View-Controller mit denselben Bezeichnern?

Ich habe ein paar ähnliche Q & Ein Thread, der dieses Problem diskutieren, aber sie haben keine Lösung angeboten.

Wie kann ich dieses Problem am besten beheben? Danke vielmals.

MEHR INFO

Nach dem Versuch, meine ausgewählten Szenen/Ansichten Refactoring, wurde ich mit einem neuen Drehbuch wie folgt dargestellt:

enter image description here

in Zooming:

enter image description here

Eine seltsame Storyboard-Referenz präsentierte sich - trotz der Tatsache, dass ich bereits einen ViewController auf dem neuen Storyboard als meine Initial ViewController ausgewählt hatte.

Ich habe die gleiche Art von Storyboard-Referenz in zwei meiner neuen umgestalteten Storyboards. Als Ergebnis erhielt ich diese Störung, wenn ich das Projekt gebaut:

Deploying Storyboard References to iOS 8.0 requires that your storyboards do not share any view controller identifiers. NewStoryBoard1.storyboard and NewStoryBoard2.storyboard both contain a view controller with identifier "UIViewController-knd-7b-mzO".

Ich habe versucht, die neue Storyboard Referenz (gelistet als „Ausgabe“ in meinem Diagramm oben) die Umbenennung aber das hat nicht den Fehler beheben.

Bitte lesen Sie meine Antwort unten für, wie ich das Problem löste.

Antwort

1

Ich denke, dass ich die Zufalls UIViewController-knd-7b-mzO doppelte Storyboard Referenzen erhalten, die mir meine Build-Fehler verursacht hat, weil:

Note: If a scene has an empty storyboard ID, the Refactor to Storyboard command automatically generates an ugly one, such as UIViewController-gtY-c7-gYu.

(Quelle) https://www.raywenderlich.com/115697/ios-9-storyboards-tutorial-whats-new-in-storyboards

Und ich hatte nicht Storyboard-IDs für alle meine Refactoring Szenen eingegeben/Ansichten.

Moving on ... konnte ich durch den Fehler Problem beheben:

  1. löschen seltsam platziert Storyboard Referenz (aufgeführt in meiner obigen Frage als „Problem“);
  2. Sicherstellen, dass ich ein Initial ViewController in jedem neuen Storyboard angegeben hatte; und
  3. Sicherstellen, dass die Reference ID Bereich der beiden ‚neuen Storyboard‘ Referenzen in meiner Haupt (das heißt original) Storyboard waren leer.

enter image description here

In der Tat dieser Sinn. Die Referenz leitet alle Aufrufe der refaktorierten Storyboard-Szenen an das neue Storyboard (referenziert durch das Feld Storyboard) und präsentiert automatisch die entsprechenden "neuen" Initial ViewControllers.

Entschuldigung für Fehler in meiner Syntax oder Code-Referenzen, ich bin neu in der Programmierung.

Ich hoffe, dies hilft jedem, der das gleiche Problem in Zukunft haben könnte.