Представление модального в iOS 13 в полноэкранном режиме - PullRequest
12 голосов
/ 04 июня 2019

В iOS 13 Beta 1 есть новое поведение для контроллера модального вида при его представлении.Теперь он не является полноэкранным по умолчанию, и когда я пытаюсь скользить вниз, приложение просто автоматически отключает View Controller.

Как я могу предотвратить это поведение и вернуться к старому хорошему полноэкранному модальному vc?

modal behaviour

Спасибо

Ответы [ 3 ]

24 голосов
/ 04 июня 2019

В iOS 13, как указано в Состояние платформы во время WWDC 2019, Apple представила новую презентацию по умолчанию для карт.Чтобы включить полноэкранный режим, вы должны явно указать его с помощью:

let vc = UIViewController()
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: true, completion: nil)
5 голосов
/ 10 июня 2019

Я добавляю информацию, которая может быть полезна для кого-то.Если у вас есть какой-либо сценарий, для возврата к старому стилю необходимо установить для свойства kind значение Present Modally , а для свойства Presentation - * 1007.* Полный экран .

enter image description here

0 голосов
/ 24 июня 2019

В Objective-C я нашел два способа.

Я заметил, что все перечисленные modalPresentationStyles меньше нуля

UIModalPresentationNone API_AVAILABLE(ios(7.0)) = -1,

UIModalPresentationAutomatic API_AVAILABLE(ios(13.0)) = -2,

  • переопределить базовый метод ViewController (я предлагаю)
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion
{
    if (viewControllerToPresent.modalPresentationStyle < 0){
        viewControllerToPresent.modalPresentationStyle = UIModalPresentationFullScreen;
    }
    [super presentViewController:viewControllerToPresent animated:flag completion:completion];
}
  • метод обмена
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...