iOS开发技巧 - 使用Alerts和Action Sheets显示弹出框

时间:2023-11-09 20:07:02

解决方案:

(Swift)

使用UIAlertController类

(Objective-C)

使用UIAlertView类

代码:

(Swift)

import UIKit

class ViewController: UIViewController {
// 1. define the variable that will hold our alert controller
var controller:UIAlertController? override func viewDidLoad() {
super.viewDidLoad() // 2. start constructing a simple alert view controller using the alert view style
controller = UIAlertController(title: "Title",
message: "Message",
preferredStyle: .Alert) // 3. simply print out a text to the console when pressed
let action = UIAlertAction(title: "Done",
style: UIAlertActionStyle.Default,
handler: {
(paramAction:UIAlertAction!) in
println("The Done button was tapped")
}) // 4. add the action that we created to the alert controller
controller!.addAction(action)
} override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated) // 5. present the alert controller
self.presentViewController(controller!, animated: true, completion: nil)
}
}

(Objective-C)

#import "ViewController.h"

@interface ViewController () <UIAlertViewDelegate>
@end @implementation ViewController
... - (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated]; self.view.backgroundColor = [UIColor whiteColor]; NSString *message = @"Are you sure you want to open this link in Safari?"; UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Open Link"
message:message
delegate:self
cancelButtonTitle:@"No"
otherButtonTitles:@"Yes", nil]; [alertView show];
} - (void) alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex { NSString *buttonTitle = [alertView buttonTitleAtIndex:buttonIndex]; if ([buttonTitle isEqualToString:@"Yes"]){
NSLog(@"User pressed the Yes button.");
}
else if ([buttonTitle isEqualToString:@"No"]){
NSLog(@"User pressed the No button.");
}
}