Предотвратите представление UIPopover в виде UIPageSheet на iPhone 6 и в альбомной ориентации

Я пытаюсь показать popOver с UISlider внутри, чтобы позволить пользователю контролировать textSize из WKWebView,

Вот как я это сделал:

MYCustomViewController *popoverContent = [[self storyboard] instantiateViewControllerWithIdentifier:@"MYCustomViewController"];
    popoverContent.delegate = self;
    popoverContent.modalPresentationStyle = UIModalPresentationPopover;
    UIPopoverPresentationController *popover = popoverContent.popoverPresentationController;
    popoverContent.preferredContentSize = CGSizeMake(220, 40);
    popover.delegate = self;
    popover.barButtonItem = (UIBarButtonItem *)sender;

    [self presentViewController:popoverContent animated:YES completion:nil];

В обычай ViewController Я просто добавил делегата, чтобы получить значение UISlider

Я также реализовал метод:

- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller
{
  return UIModalPresentationNone;
}

Все прекрасно работает на всех устройствах, кроме iPhone 6 Plus в альбомной ориентации (т.е. компактная высота), которая отображает popover как UIPageSheet

Примечание: я представляю поповер из UIbarButtonItem, в detailViewController из UISplitViewController

1 ответ

Решение

Я решил эту проблему, внедрив новый adaptivePresentationStyleForPresentationController:traitCollection: метод UIAdaptivePresentationControllerDelegate: как предложено @Joshua

- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller traitCollection:(UITraitCollection *)traitCollection {
    // This method is called in iOS 8.3 or later regardless of trait collection, in which case use the original presentation style (UIModalPresentationNone signals no adaptation)
    return UIModalPresentationNone;
}

UIModalPresentationNone говорит контроллеру презентаций использовать оригинальный стиль презентации, который в вашем случае будет отображать popover,

Другие вопросы по тегам