Wie finden Sie das oberste view-controller auf iOS

Ich habe in ein paar Fällen nun, wo es wäre praktisch in der Lage sein zu finden, das "topmost" - view-controller (der verantwortliche für die aktuelle Sicht), aber noch keinen Weg gefunden, es zu tun.

Grundsätzlich die Herausforderung ist diese: Angesichts der Tatsache, dass man die Ausführung in einer Klasse, die nicht eine view-controller (oder einen Blick) [und nicht die Adresse eines active view] und wurde nicht übergeben Sie die Adresse der oberste view-controller (oder, sagen wir, die Adresse des navigation-controller), ist es möglich zu finden, die view-controller? (Und, wenn ja, wie?)

Oder, wenn das fehlschlägt, ist es möglich, die oberste Ansicht?

  • Sie sagen also, es ist nicht möglich.
  • Nein, sage ich, dass es scheint, wie dein code könnte etwas re-Design, denn Sie sollten nur selten brauchen, um wissen. Auch die Idee der "oberste" ist nur gültig in bestimmten Kontexten, und selbst dann nicht immer.
  • Ich hatte deine Frage falsch verstanden. Es gibt viele wenn und aber versucht, diese Frage zu beantworten. Es hängt von Ihrem view-controller fließen. @Wilbur ' s Antwort sollte ein guter Ausgangspunkt, um die Spur nach unten.
  • Gut, wir vereinfachen es zu einem konkreten Fall. Wenn ich schreiben wollte, ein Klon der uialertview-Objekt, wie würde ich es tun? Beachten Sie, dass es funktionieren kann gut ohne übergeben alle addressibility zu anderen Controllern oder views.
  • Hinzufügen eines zweiten UIWindow funktioniert gut für die Alarm-Ansicht-wie überlagerungen.
  • Ja, UIWindow scheint der Weg für eine Warnung. Nicht lösen das andere problem, herauszufinden, die oberste view-controller (wo man will, stellen Sie noch on top), aber ich denke, diese müssen getrennt behandelt werden.
  • Was, wenn Sie wirklich brauchen, in einigen besonderen Fall mehr als ein uialertview-Objekt in ein Modul, wo man nur die Daten verarbeiten? Sie wollen nicht Durcheinander herum mit einem controller Referenz im Daten-Modul, kümmert sich um es richtig in allen UI, wo Sie nennen das Daten-Modul. Oder Sie tun? Und vielleicht besser ist, um eine in-zwischen Schicht... ich bin gerade am überlegen hier... Sie könnten Recht haben wenn.

InformationsquelleAutor Hot Licks | 2011-05-25
Schreibe einen Kommentar