2015-08-13 2 views
0

В одном месте в моем приложении я добавлял оверлей в ключевое окно в качестве наложения. После обновления моего iPad до 8.4, которое перестало работать. Есть ли что-то, что нужно учитывать, что было изменен в версиях iOS?Добавление subview в UIWindow в iOS 8.3

UIApplication.sharedApplication().delegate?.window!!.addSubview(thankYouOverlayView) 

P.S thankYouOverlayView могут быть добавлены к self.view, как подвид, но мне нужно, чтобы это было на самом высоком уровне.

+0

Когда вы говорите «перестали работать», вы имеете в виду, что он не появляется или он падает? – Fennelouski

+0

Добавление наложения в этой усадьбе подвержено ошибкам. Это может работать для iOS 8.3, и, как вы заметили, перестает работать в 8.4. Возможно, вам захочется инвестировать некоторое время и создать подходящий класс или категорию UIViewController, который добавит ваш оверлей, вместо добавления subview в окно приложения. Поскольку предлагаемое исправление, которое все еще использует тот же метод, может работать для iOS 8.4, но может быть неудачным в iOS 9, отправив вас обратно на квадрат. –

+0

Фактически это должно быть в uiwindows, потому что представленные viewconrollers отклоняются, пока пользователь видит этот макет. –

ответ

0

Как заявили другие, добавление непосредственно в окно, как правило, не очень хорошая идея. Вы можете использовать , но лучше иметь определенный вид и контроллер просмотра, к которому вы добавляете представление.

То, что я считаю эффективным, - создать цикл, который найдет самый верхний вид и контроллер просмотра и добавит к нему представление. У меня никогда не было проблемы с iOS 6 до текущей бета-версии iOS 9.