Chcę zawsze prezentować ViewController
w popover na wszystkich urządzeniach i we wszystkich orientacjach. Próbowałem to osiągnąć, przyjmując UIPopoverPresentationControllerDelegate
i ustawiając sourceView
i .UIModalPresentationPopover dla iPhone 6 Plus w krajobrazie nie wyświetla popover
Działa to bardzo dobrze dla wszystkich urządzeń i orientacji, z wyjątkiem telefonu iPhone 6 Plus w orientacji poziomej. W takim przypadku kontroler widoku przesuwa się z dołu ekranu w arkuszu formularza. Jak mogę temu zapobiec, aby zawsze pojawiała się w popover?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let popoverPresentationController = segue.destinationViewController.popoverPresentationController
popoverPresentationController?.delegate = self
popoverPresentationController?.sourceView = self.titleLabel!.superview
popoverPresentationController?.sourceRect = self.titleLabel!.frame }
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.None }
Wszystkie urządzenia są pod iOS 8.2 lub wyższa
Dobre połączenie! Zapomniałem, że metoda delegatów została zmieniona na 8.3. –
@PetahChristian Thanks! Taka była dość cicha zmiana i nie wydaje się być udokumentowana inaczej niż w różnicach API. – Joshua
@Joshua TAK! I nie realizacji - (UIModalPresentationStyle) adaptivePresentationStyleForPresentationController (UIPresentationController *) kontroler { powrotu UIModalPresentationNone; } ale nowe API rozwiązuje mój problem, dziękuję, proszę pana! – Loegic