Ich habe gerade Xcode 4.5 für die iOS6-Unterstützung installiert und in meinem Storyboard ein neues Symbol mit dem Namen "Beenden" angezeigt, das unter meinen Ansichts-Controllern zusammen mit "Ersthelfer" usw. aufgeführt ist. Ein kleines grünes Symbol mit der Bezeichnung "Beenden".
Ich kann nichts darauf finden oder herausfinden, wie es verwendet werden kann.
Weiß jemand etwas darüber, wie es funktioniert, wofür es ist?
iphone
objective-c
xcode
ipad
storyboard
Josh Kahane
quelle
quelle
Antworten:
Dies wird als " Abwicklungssegue " bezeichnet. Leider gibt es bisher keine Dokumentation dafür, außer einer kurzen Erwähnung in der Liste der neuen Funktionen von XCode 4.5, in der es heißt:
Die gute Nachricht ist, dass es eine Sitzung von WWDC 2012 gibt, in der diese Kreaturen (unter anderem) erklärt werden.
Sie können sich einfach mit Ihren Entwicklerkontodaten im iOS Dev Center von Apple anmelden und dann auf der WWDC 2012- Videoseite "Adopting Storyboard in your App" (es ist das fünfte von oben) ansehen. Die Diskussion über Abwicklungssegmente beginnt um 37:20 Uhr .
Update: Hier finden Sie weitere Informationen zu diesem Thema aus der Apple-Dokumentation
(Von iOS6 docset> Allgemein> Erste Schritte)
Und hier ist ein schönes Beispiel, wie Sie eines implementieren können
Ein weiteres Update:
Hier ist ein technischer Hinweis von Apple zu diesem Thema.
quelle
exit
Schaltfläche herstellen, um die Methode auszuwählen, die Sie aufrufen möchten. Sie können finden hier ein Beispiel (ich habe meine Antwort auch aktualisiert , um das Beispiel zu enthalten)Stellen Sie sich vor, Sie haben eine Abfolge von Ansichten in Ihrem Storyboard:
A -> ... -> Z
Sie möchten eine Schaltfläche anzeigen
Z
, mit der der Benutzer ganz zurück zu gehen kannA
.Sie müssen also die Ansicht angeben, die Sie bis zu
A
einer Instanzmethode zurücksetzen möchten, die als gekennzeichnet istIBAction
und einen einzelnen Parameter vom Typ enthältUIStoryboardSegue *
. Der Name der Methode und der Variablen spielt keine Rolle. Was Sie innerhalb der Implementierung tun, spielt ebenfalls keine Rolle. Hier ist ein Beispiel:Obj-C:
In
A
's Schnittstelle (nichtZ
' s):In
A
's Implementierung (nichtZ
' s):Swift:
In
A
's Quelle (nichtZ
' s):controlZiehen Sie nun in Ihrem Storyboard von einem Element auf
Z
(IE, eine Schaltfläche zum Abbrechen) aufZ
'sExit
. Es durchsucht alle Ansichten weiter oben in der AnsichtshierarchieIBAction
, die nur eine einzelneUIStoryboardSegue *
als Aktion akzeptieren, und listet sie auf, aus denen Sie auswählen können.Hoffentlich war dies einfacher und hilfreicher als die vorhandenen Antworten. Ich fand, dass dieser Link besonders nützlich war. Wenn es also ein Detail gibt, bei dem Sie nach dem Lesen meiner Antwort immer noch unscharf sind, kann dies Ihnen vielleicht helfen (ich habe versucht, alle nützlichen Informationen aus diesem langen Artikel in einer kurzen Antwort zusammenzufassen): http://www.freelancemadscience.com/fmslabs_blog/2012/9/24/advanced-storyboard-techniques.html
quelle
Siehe auch Storyboard-Abwicklungssegment kann nicht verbunden werden, in dem die Anforderungen für die Aktivierung des Exit-Symbols erläutert werden. Sie müssen weiter oben in der View Controller-Hierarchie eine Methode haben, die:
Als IBAction markiert
Nimmt einen Parameter, der ein UIStoryboardSegue * ist
Wenn beide Bedingungen erfüllt sind, wird es durch das Beenden-Symbol angezeigt und Sie können eine Verbindung herstellen, indem Sie von einer Schaltfläche im selben Ansichts-Controller die Steuerung ziehen.
Ich habe jetzt auch das einfachste Beispiel der Welt hier veröffentlicht:
https://github.com/mattneub/Programming-iOS-Book-Examples/tree/master/ch19p638presentedViewControllerStoryboard (behoben am 12. Juli 2013)
Dies zeigt, wie einfach es jetzt ist, zu einem vorgestellten Ansichts-Controller zu wechseln und von diesem zurückzukehren , im Gegensatz zu all der Arbeit, die Sie zuvor ausführen mussten, um Informationen hin und her zu übergeben (das Material in der Vorlage mit einem Delegaten und einem Protokoll) , die jetzt alle gelöscht werden können).
quelle
Fügen Sie der Anforderungsdefinition nur eine leichte Subtilität hinzu, die hilfreich sein könnte. Dies basiert auf Experimenten in Xcode 4.6. Ich fand heraus, dass es spezifisch und nur die Deklaration (!) Der Methode ist, die die gewünschte Control-Drag-Antwort von Xcode ermöglicht. Folgendes habe ich als die vollständigen Anforderungen befunden:
IBAction
UIStoryboardSegue
* ist.M
Implementierungsabschnitt])..M
, mit Ausnahme der appdelegate-Klasse. (Ich habe keine Abhängigkeit von seiner Position in der Controller-Hierarchie festgestellt. Sie können eine beliebige alte Datei hinzufügen, und das System scheint alle Methoden mit demUIStoryboardSegue
Parameter zu aggregieren und im Menü des Exit-Symbols anzuzeigen.) Beachten Sie, dass das Steuerelement gezogen wird Das Menü zeigt Ihnen sogar Ihre Methode an, wenn sich die Methode in der Klasse der Szene befindet, die Sie im Storyboard-Editor bearbeiten. Sie wird jedoch ohne Doppelpunkt angezeigt und scheint zur Laufzeit keine Aktion auszulösen.Beispiel:
-(IBAction)anymethodname:(UIStoryboardSegue *)myvariable;
quelle