Das klingt vielleicht komisch.Wie kann ich einen modalen Übergang auf einem View-Controller, der modal präsentiert wird, durchführen?
Ich habe eine View-Controller, nennen wir es VC1
, die modal als ein Formularblatt dargestellt wird.
Wenn der Benutzer auf eine Schaltfläche in VC1
tippt, wird eine Auswahl als Aktionsblatt angezeigt. Wenn der Benutzer ein bestimmtes Element auswählt und im Aktionsblatt auf "Fertig" tippt, möchte ich modal ein weiteres VC (VC2
) präsentieren.
Lassen Sie mich Ihnen die Aktion Blatt:
So habe ich ein "Geschenk Modal" Segue, die VC1
und UINavigationController
verbindet. Diese UINavigationController
hat VC2
als Root-View-Controller. Das Segment hat eine Präsentation von "Form Sheet" und eine "Flip Horizontal" Präsentation.
Wenn ich meine App testen, erscheint diese Warnung in der Konsole und keine View-Controller überhaupt vorgestellt:
Warnung: Der Versuch, auf das präsentieren bereits präsentiert (null)
Und ich dachte "Worüber zum Teufel redet es? Wie kann VC1
Null darstellen?" Das Seltsame ist, dass es null
(das ist die Terminologie von C# und Java) anstelle von nil
(die Swift verwendet) verwendet.
Ich habe verschiedene Übergänge und Präsentationen ausprobiert. Aber die gleiche Nachricht erscheint. Ich habe auch versucht, die UINavigationController
zu entfernen und VC2
direkt zu präsentieren. Dieses Mal ändert sich die Fehlermeldung:
Warnung: Versuch zu präsentieren, auf dem bereits präsentiert (null)
Wie kann ich VC2
modal präsentieren?
Man kann Vc modal nicht auf einem anderen Vc präsentieren, der modal selbst präsentiert wird. Was Sie tun können: VC1 und dann VC2 auf dem gleichen Host vc – Elena
@Elena entlassen Aber nach ein paar Versuchen habe ich gerade herausgefunden, dass ich 'dispatch_after' anrufen kann, um dieses Problem zu lösen. Ich werde eine Antwort posten. – Sweeper
@Elena Können Sie das erklären? – Sweeper