У меня есть проект, кодовая база которого находится в Objective- C. Начиная с iOS 13, из-за изменений в modalPresentationStyle, приложение перешло в новое поведение modalStyles. В связи с требованиями компании и клиента, modalPresentationStyle должен оставаться в полноэкранном режиме.
Чтобы исправить это пару месяцев go, мы создали файл Objective- C Category, который расширяет функциональность UIViewController. В этом классе мы реализовали два метода, которые будут наследоваться в каждом v c в проекте:
- (UIModalPresentationStyle)modalPresentationStyle
{
return UIModalPresentationFullScreen;
}
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
Добавив эти два метода в категорию Obj C, давайте добавим эту конфигурацию только один раз, в этот файл, и он автоматически копируется в VC. Мы не хотели писать эти методы в каждом v c, они пишутся только в том случае, если необходимо добавить исключение.
Это работало для нас в версиях, предшествовавших обновлению этой недели.
После обновления Xcode и iOS до 11.4 и 13.4 соответственно поведение этой категории нарушилось. Теперь эти методы автоматически не вызываются контроллерами представления, когда они создаются.
Я не знаю, связано ли это с записью о выпуске, в которой говорится:
«Создание файла категории Objective- C путем выбора« Файл »>« Создать » > Файл больше не создает файл, который включает в себя импорт платформы AppKit. (55977950) (FB7346800) "
Это сломало множество проектов, которые необходимо обновить в ближайшие дни.