Я создаю UIWindow
и сделаю его ключом и виден в didFinishLaunching
, а затем создайте еще один UIWindow
, а также сделайте его ключевым и видимым. Я ожидаю, что первое окно будет оставлено и выпущено из памяти, а второе - для отображения. Но, как я вижу в отладчике (Иерархия отладки), они оба находятся в иерархии.Можно ли изменить окно ключа?
Нормально ли это?
UPDATE
Вопрос не почему оба объекта находятся в памяти. Я хотел бы знать, почему они оба находятся в иерархии представлений? И как я могу удалить одну из них?
Примечание: В ключевых окнах нет супервизоров, поэтому я не могу этого сделать, просто позвонив removeFromSuperview
.
Вы удаляете окно, удаляя все ссылки, чтобы оно было освобождено или сделало его скрытым. – dan
@ Возможно, у меня все еще есть сильная ссылка. Но я также подозреваю, что первое окно захватывается самой иерархией. Как это происходит с представлением, когда вы добавляете его в иерархию представлений. Разве вы не думаете, что это случай? –
Нет, представления в иерархии представлений сохраняются, потому что их супервизор сохраняет их. Окно без надзора не будет сохранено иерархией представлений. – dan