使用UIAlertviewController弹出视图

iOS8中新增了UIAlertViewController,用来统一之前的UIAlertView和UIActionSheet.但是个人觉得某些情况下不太适用,因为UIAlertViewController继承自UIViewController,只能用
presentViewController:animated:completion方法来展示,这样的话在一些UIView的业务场景下就不好处理了.

但是UIAlertViewController来展示UITextField的时候可以自由订制使用所有的UITextField特性了,UIAlertView只能使用系统固定的样式.

oc代码:

- (IBAction)showAlert:(id)sender {
      UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"This is title" message:@"This is message" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
    NSLog(@"OK");
}];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
    NSLog(@"Cancel");
}];

UIAlertAction *Destructive = [UIAlertAction actionWithTitle:@"Destructive" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
    NSLog(@"Destructive");
}];

[alert addAction:cancel];
[alert addAction:ok];
[alert addAction:Destructive];


[self presentViewController:alert animated:YES completion:nil];
}

//展示textfield
- (IBAction)showTextfield:(UIButton *)sender {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"This is title" message:@"This is message" preferredStyle:UIAlertControllerStyleAlert];

[alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
    textField.placeholder = @"username";
    NSLog(@"username==%@",textField.text);
    textField.delegate = self;
}];
[alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
    textField.placeholder = @"password";
    NSLog(@"password==%@",textField.text);
    textField.delegate = self;

}];
UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
    NSLog(@"OK");
}];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
    NSLog(@"Cancel");
}];
[alert addAction:cancel];
[alert addAction:ok];
[self presentViewController:alert animated:YES completion:nil];
}

swift代码:

    @IBAction func showAlert(sender: UIButton) {
    var alert = UIAlertController(title: "This is title", message: "This is message", preferredStyle:.Alert)
    var ok = UIAlertAction(title: "ok", style: .Default) { (ok) -> Void in
        println("ok")
    }
    var cancel = UIAlertAction(title: "cancel", style: .Default) { (ok) -> Void in
        println("cancel")
    }
    alert.addAction(cancel)
    alert.addAction(ok)
    self.presentViewController(alert, animated: true) { () -> Void in
        println("present")
    }
}

//展示textfield
@IBAction func showTextfield(sender: AnyObject) {
    var alert = UIAlertController(title: "This is title", message: "This is message", preferredStyle:.Alert)
    alert.addTextFieldWithConfigurationHandler { (textfield) -> Void in
        textfield.placeholder = "Email"

    }
    var ok = UIAlertAction(title: "ok", style: .Default) { (ok) -> Void in
        println("ok")
    }
    alert.addAction(ok)

    self.presentViewController(alert, animated: true) { () -> Void in
        println("present")
    }
}

你可能感兴趣的:(iOS,Cookbook)