Writing handler for UIAlertAction

后端 未结 9 841
北恋
北恋 2020-11-28 05:10

I\'m presenting a UIAlertView to the user and I can\'t figure out how to write the handler. This is my attempt:

let alert = UIAlertController(ti         


        
相关标签:
9条回答
  • 2020-11-28 05:14
    1. In Swift

      let alertController = UIAlertController(title:"Title", message: "Message", preferredStyle:.alert)
      
      let Action = UIAlertAction.init(title: "Ok", style: .default) { (UIAlertAction) in
          // Write Your code Here
      }
      
      alertController.addAction(Action)
      self.present(alertController, animated: true, completion: nil)
      
    2. In Objective C

      UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Message" preferredStyle:UIAlertControllerStyleAlert];
      
      UIAlertAction *OK = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action)
      {
      }];
      
      [alertController addAction:OK];
      
      [self presentViewController:alertController animated:YES completion:nil];
      
    0 讨论(0)
  • 2020-11-28 05:19

    this is how i do it with xcode 7.3.1

    // create function
    func sayhi(){
      print("hello")
    }
    

    // create the button

    let sayinghi = UIAlertAction(title: "More", style: UIAlertActionStyle.Default, handler:  { action in
                self.sayhi()})
    

    // adding the button to the alert control

    myAlert.addAction(sayhi);
    

    // the whole code, this code will add 2 buttons

      @IBAction func sayhi(sender: AnyObject) {
            let myAlert = UIAlertController(title: "Alert", message:"sup", preferredStyle: UIAlertControllerStyle.Alert);
            let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler:nil)
    
            let sayhi = UIAlertAction(title: "say hi", style: UIAlertActionStyle.Default, handler:  { action in
                self.sayhi()})
    
            // this action can add to more button
            myAlert.addAction(okAction);
            myAlert.addAction(sayhi);
    
            self.presentViewController(myAlert, animated: true, completion: nil)
        }
    
        func sayhi(){
            // move to tabbarcontroller
         print("hello")
        }
    
    0 讨论(0)
  • 2020-11-28 05:23

    create alert, tested in xcode 9

    let alert = UIAlertController(title: "title", message: "message", preferredStyle: UIAlertControllerStyle.alert)
    alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: self.finishAlert))
    self.present(alert, animated: true, completion: nil)
    

    and the function

    func finishAlert(alert: UIAlertAction!)
    {
    }
    
    0 讨论(0)
  • 2020-11-28 05:24

    You can do it as simple as this using swift 2:

    let alertController = UIAlertController(title: "iOScreator", message:
            "Hello, world!", preferredStyle: UIAlertControllerStyle.Alert)
    alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Destructive,handler: { action in
            self.pressed()
    }))
    
    func pressed()
    {
        print("you pressed")
    }
    
        **or**
    
    
    let alertController = UIAlertController(title: "iOScreator", message:
            "Hello, world!", preferredStyle: UIAlertControllerStyle.Alert)
    alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Destructive,handler: { action in
          print("pressed")
     }))
    

    All the answers above are correct i am just showing another way that can be done.

    0 讨论(0)
  • 2020-11-28 05:27

    Syntax change in swift 3.0

    alert.addAction(UIAlertAction(title: "Okay",
                    style: .default,
                    handler: { _ in print("Foo") } ))
    
    0 讨论(0)
  • 2020-11-28 05:28

    Lets assume that you want an UIAlertAction with main title, two actions (save and discard) and cancel button:

    let actionSheetController = UIAlertController (title: "My Action Title", message: "", preferredStyle: UIAlertControllerStyle.ActionSheet)
    
        //Add Cancel-Action
        actionSheetController.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil))
    
        //Add Save-Action
        actionSheetController.addAction(UIAlertAction(title: "Save", style: UIAlertActionStyle.Default, handler: { (actionSheetController) -> Void in
            print("handle Save action...")
        }))
    
        //Add Discard-Action
        actionSheetController.addAction(UIAlertAction(title: "Discard", style: UIAlertActionStyle.Default, handler: { (actionSheetController) -> Void in
            print("handle Discard action ...")
        }))
    
        //present actionSheetController
        presentViewController(actionSheetController, animated: true, completion: nil)
    

    This works for swift 2 (Xcode Version 7.0 beta 3)

    0 讨论(0)
提交回复
热议问题