我创建了一个UIWindow
并在didFinishLaunching
中将其设为关键并显示,然后创建另一个UIWindow
,并使其成为关键且可见的。我希望第一个窗口被放弃并从内存中释放出来,第二个窗口将被显示出来。但正如我在调试器中看到的那样(调试视图层次结构),它们都在层次结构中。
这是正常的吗?
更新
问题不在于为什么两个对象都在内存中。我想知道为什么它们都在视图层次结构中?如何从那里删除其中一个?
注意:关键窗口没有超级视图,因此我只需拨打removeFromSuperview
就可以做到这一点。
答案 0 :(得分:0)
如果您的AppDelegate
保留第一个窗口,它将永远不会释放。当然,您可以将任何创建的窗口设置为关键且可见。 makeKeyAndVisible
方法创建一个窗口键并将其移动到具有相同级别的任何其他窗口的前面。