Swift - Displaying Actionsheet for Ipad and Iphone

Swift - Displaying Actionsheet for Ipad and Iphone

A simple tutorial on making an alert view of type action sheet that works for iphone and ipad.



1.) First you'll need a button where you can attach your pop over when you're using iPad (in iPhone it not necessary). Then you'll have to create an outlet for the button (in my example i named it "btn_button") so we can determine the pop over location based on where the button is placed inside the viewcontroller.

2.) Inside the button's action, paste the following lines of code:

 let optionMenu = UIAlertController(title: "Choose Your Option", message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)
        
        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)
        
        
        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)
        }
        
      
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 - Displaying Actionsheet for Ipad and Iphone Swift - Displaying Actionsheet for Ipad and Iphone Reviewed by Edmond Legaspi on Wednesday, July 01, 2015 Rating: 5

1 comment:

paul boulet said...

Hi,

Big thanks for the tutorial ! How do you make the "options" to segue to another view controller ?

Thanks,

Powered by Blogger.