Popover Action Sheet
The code is pretty straight forward:
First we declare a UIAlertController where we can put our buttons.
Second we created the buttons (Option1, Option2, and Cancel) and then we add the buttons inside the alert controller.
Last we use the UI_USER_INTERFACE_IDIOM to determine if the device/emulator is an ipad or an iphone and do the necessary presentation for each particular device.
Swift 3.0
let optionMenu = UIAlertController(title: "Choose Your Option", message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)
//Add options that will apear in the selection table.
let option1 = UIAlertAction(title: "Option 1", style: .Default, handler: {
(alert: UIAlertAction!) -> Void in
println("Option 1")
})
let option2 = UIAlertAction(title: "Option ", style: .Default, handler: {
(alert: UIAlertAction!) -> Void in
println("Option 2")
})
let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: {
(alert: UIAlertAction!) -> Void in
println("Cancelled")
})
optionMenu.addAction(option1)
optionMenu.addAction(option2)
optionMenu.addAction(cancelAction)
//Condition for appearence of action sheet.
if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad )
{
if let currentPopoverpresentioncontroller = optionMenu.popoverPresentationController{
currentPopoverpresentioncontroller.sourceView = btn_button
currentPopoverpresentioncontroller.sourceRect = btn_button.bounds;
currentPopoverpresentioncontroller.permittedArrowDirections = UIPopoverArrowDirection.Up;
self.presentViewController(optionMenu, animated: true, completion: nil)
}
}else{
self.presentViewController(optionMenu, animated: true, completion: nil)
}