Я использую новую адаптивную возможность "Present As Popover" для iOS 8. Я сделал проводной простой сеанс в StoryBoard, чтобы сделать презентацию. Он отлично работает на iPhone 6 Plus, поскольку он представляет представление как popover и на iPhone 4s, который он показывает как полноэкранный режим (стиль листа).
Проблема заключается в том, что при отображении в виде полноэкранного просмотра мне нужно добавить кнопку "Готово" к представлению, чтобы можно было вызвать функцию отклоненияViewControllerAnimated. И я не хочу показывать кнопку "done", когда она отображается как popover.
Я попробовал посмотреть свойства как presentationController, так и popoverPresentationController, и я не могу найти ничего, что говорит мне, действительно ли оно отображается как popover.
NSLog( @"View loaded %lx", (long)self.presentationController.adaptivePresentationStyle ); // UIModalPresentationFullScreen
NSLog( @"View loaded %lx", (long)self.presentationController.presentationStyle ); // UIModalPresentationPopover
NSLog( @"View loaded %lx", (long)self.popoverPresentationController.adaptivePresentationStyle ); // UIModalPresentationFullScreen
NSLog( @"View loaded %lx", (long)self.popoverPresentationController.presentationStyle ); // UIModalPresentationPopover
adaptivePresentationStyle всегда возвращает UIModalPresentationFullScreen и presentationStyle всегда возвращает UIModalPresentationPopover
Когда я смотрю на UITraitCollection, я нашел признак "_UITraitNameInteractionModel", который был установлен только в 1, когда он фактически отображался как Popover. Тем не менее, Apple не обеспечивает прямой доступ к этому признаку через traitCollection popoverPresentationController.