Я представляю контроллер вида с модой UIModalPresentationStyle
, установленный в адаптивном стиле UIModalPresentationPopover
. Этот стиль, когда в горизонтально компактной среде (портрет iPhone) появится на весь экран. Когда в горизонтально регулярной и вертикально компактной среде (ландшафт iPhone 6 Plus) он появится в виде листа. И когда в обычной обычной среде (iPad) он появится как popover. Это желаемое поведение.Определите, как отображается контроллер просмотра.
Мне нужно программно определить, как этот контроллер будет на самом деле будет отображаться - лист формы, полный экран или popover. Как я могу определить это изнутри контроллера представления, который отображается?
Причина в том, что мне нужно добавить кнопку «Готово» только в том случае, если она не находится внутри popover. (Или скрыть его в случае находится в пирог.)
Создание контроллера вида:
let viewController = ...
viewController.modalPresentationStyle = .Popover
let popoverController = viewController.popoverPresentationController
popoverController?.barButtonItem = settingsButton
presentViewController(viewController, animated: true, completion: nil)
Внутри ViewController:
- (void)viewDidLoad {
[super viewDidLoad];
//self.modalPresentationStyle is Popover even in the case where it's presented over the full screen
//self.popoverPresentationController is not nil even when presented full screen
}
Удалось выяснить это? – ian
@ian Я этого не сделал. – Joey