Created
January 12, 2016 09:03
-
-
Save Appletone/0bee89499c262fb84702 to your computer and use it in GitHub Desktop.
Fix for IOS 9 pop-over arrow anchor bug. from http://stackoverflow.com/a/33070565
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Fix for IOS 9 pop-over arrow anchor bug | |
// --------------------------------------- | |
// - IOS9 points pop-over arrows on the top left corner of the anchor view | |
// - It seems that the popover controller's sourceRect is not being set | |
// so, if it is empty CGRect(0,0,0,0), we simply set it to the source view's bounds | |
// which produces the same result as the IOS8 behaviour. | |
// - This method is to be called in the prepareForSegue method override of all | |
// view controllers that use a PopOver segue | |
// | |
// example use: | |
// | |
// override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) | |
// { | |
// fixIOS9PopOverAnchor(segue) | |
// } | |
// | |
extension UIViewController | |
{ | |
func fixIOS9PopOverAnchor(segue:UIStoryboardSegue?) | |
{ | |
guard #available(iOS 9.0, *) else { return } | |
if let popOver = segue?.destinationViewController.popoverPresentationController, | |
let anchor = popOver.sourceView | |
where popOver.sourceRect == CGRect() | |
&& segue!.sourceViewController === self | |
{ popOver.sourceRect = anchor.bounds } | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment