Ich erstelle eine UIWindow
und machen Sie es Schlüssel und sichtbar in didFinishLaunching
und später erstellen Sie eine weitere UIWindow
und machen Sie es auch Schlüssel und sichtbar. Ich erwarte, dass das erste Fenster verlassen wird und aus dem Speicher freigegeben wird und das zweite - um gezeigt zu werden. Aber wie ich im Debugger (Debug View Hierarchie) sehe, sind sie beide in der Hierarchie.Ist es in Ordnung, ein Schlüsselfenster zu ändern?
Ist das normal?
UPDATE
Die Frage ist nicht, warum beiden Objekte im Speicher befinden. Ich würde gerne wissen, warum beide in der View-Hierarchie sind? Und wie kann ich einen von ihnen entfernen?
Hinweis: Schlüsseldisplays haben keine Superviews, daher kann ich das nicht tun, indem ich einfach removeFromSuperview
anrufe.
Sie entfernen ein Fenster, indem Sie entweder alle Referenzen entfernen, so dass es freigegeben wird oder es ausgeblendet wird. – dan
@dan ist es möglich, dass ich irgendwo noch eine starke Referenz habe. Aber ich vermute auch, dass das erste Fenster von der Hierarchie selbst erfasst wird. Wie bei einer Ansicht, wenn Sie sie zur Ansichtshierarchie hinzufügen. Denkst du nicht, dass es ein Fall ist? –
Nein, Ansichten in der Ansichtshierarchie bleiben erhalten, weil ihre Superview sie behält. Ein Fenster ohne Superview wird von der Ansichtshierarchie nicht beibehalten. – dan