รหัสเริ่มต้นอะไรที่ฉันสามารถใช้เพื่อสร้าง UIAlertView แบบง่ายๆโดยมีปุ่ม "ตกลง" เพียงปุ่มเดียว
รหัสเริ่มต้นอะไรที่ฉันสามารถใช้เพื่อสร้าง UIAlertView แบบง่ายๆโดยมีปุ่ม "ตกลง" เพียงปุ่มเดียว
คำตอบ:
เมื่อคุณต้องการให้การแจ้งเตือนแสดงให้ดำเนินการดังนี้:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ROFL"
message:@"Dee dee doo doo."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
// If you're not using ARC, you will need to release the alert view.
// [alert release];
หากคุณต้องการทำบางสิ่งเมื่อคลิกปุ่มให้ใช้วิธีการมอบสิทธิ์นี้:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
// the user clicked OK
if (buttonIndex == 0) {
// do something here...
}
}
และตรวจสอบให้แน่ใจว่าผู้รับมอบสิทธิ์ของคุณเป็นไปตามUIAlertViewDelegate
โปรโตคอล:
@interface YourViewController : UIViewController <UIAlertViewDelegate>
คำตอบอื่น ๆ ให้ข้อมูลสำหรับ iOS 7 และเก่ากว่าแล้วอย่างไรก็ตามUIAlertView
เลิกใช้งานใน iOS 8แล้ว
ใน iOS 8 UIAlertController
คุณควรใช้ มันจะเปลี่ยนสำหรับทั้งสองและUIAlertView
UIActionSheet
เอกสารอ้างอิง: UIAlertController ชั้นอ้างอิง และบทความที่ดีในNSHipster
ในการสร้าง Alert View ง่ายๆคุณสามารถทำสิ่งต่อไปนี้:
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Title"
message:@"Message"
preferredStyle:UIAlertControllerStyleAlert];
//We add buttons to the alert controller by creating UIAlertActions:
UIAlertAction *actionOk = [UIAlertAction actionWithTitle:@"Ok"
style:UIAlertActionStyleDefault
handler:nil]; //You can use a block here to handle a press on this button
[alertController addAction:actionOk];
[self presentViewController:alertController animated:YES completion:nil];
สวิฟต์ 3/4/5:
let alertController = UIAlertController(title: "Title", message: "Message", preferredStyle: .alert)
//We add buttons to the alert controller by creating UIAlertActions:
let actionOk = UIAlertAction(title: "OK",
style: .default,
handler: nil) //You can use a block here to handle a press on this button
alertController.addAction(actionOk)
self.present(alertController, animated: true, completion: nil)
โปรดทราบว่าเนื่องจากมีการเพิ่มใน iOS 8 รหัสนี้จะใช้ไม่ได้กับ iOS 7 ขึ้นไป ดังนั้นน่าเศร้าสำหรับตอนนี้เราต้องใช้การตรวจสอบเวอร์ชันดังนี้:
NSString *alertTitle = @"Title";
NSString *alertMessage = @"Message";
NSString *alertOkButtonText = @"Ok";
if (@available(iOS 8, *)) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:alertTitle
message:alertMessage
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:alertOkButtonText, nil];
[alertView show];
}
else {
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:alertTitle
message:alertMessage
preferredStyle:UIAlertControllerStyleAlert];
//We add buttons to the alert controller by creating UIAlertActions:
UIAlertAction *actionOk = [UIAlertAction actionWithTitle:alertOkButtonText
style:UIAlertActionStyleDefault
handler:nil]; //You can use a block here to handle a press on this button
[alertController addAction:actionOk];
[self presentViewController:alertController animated:YES completion:nil];
}
สวิฟต์ 3/4/5:
let alertTitle = "Title"
let alertMessage = "Message"
let alertOkButtonText = "Ok"
if #available(iOS 8, *) {
let alertController = UIAlertController(title: alertTitle, message: alertMessage, preferredStyle: .alert)
//We add buttons to the alert controller by creating UIAlertActions:
let actionOk = UIAlertAction(title: alertOkButtonText,
style: .default,
handler: nil) //You can use a block here to handle a press on this button
alertController.addAction(actionOk)
self.present(alertController, animated: true, completion: nil)
}
else {
let alertView = UIAlertView(title: alertTitle, message: alertMessage, delegate: nil, cancelButtonTitle: nil, otherButtonTitles: alertOkButtonText)
alertView.show()
}
UPD: อัปเดตสำหรับ Swift 5 แทนที่การตรวจสอบสถานะคลาสที่ล้าสมัยด้วยการตรวจสอบความพร้อมใช้งานใน Obj-C
UIAlertView เลิกใช้งานบน iOS 8 ดังนั้นในการสร้างการแจ้งเตือนบน iOS 8 ขึ้นไปขอแนะนำให้ใช้ UIAlertController:
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Title" message:@"Alert Message" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){
// Enter code here
}];
[alert addAction:defaultAction];
// Present action where needed
[self presentViewController:alert animated:YES completion:nil];
นี่คือวิธีที่ฉันได้นำไปใช้
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Title"
message:@"Message"
delegate:nil //or self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert autorelease];
UIAlertView *myAlert = [[UIAlertView alloc]
initWithTitle:@"Title"
message:@"Message"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Ok",nil];
[myAlert show];
ในฐานะที่เป็นคำตอบเพิ่มเติมของสองคำตอบก่อนหน้านี้ (ของผู้ใช้ "sudo rm -rf" และ "Evan Mulawski") หากคุณไม่ต้องการทำอะไรเลยเมื่อมีการคลิกมุมมองการแจ้งเตือนคุณสามารถจัดสรรแสดงและปล่อยได้ คุณไม่จำเป็นต้องประกาศโปรโตคอลผู้รับมอบสิทธิ์
นี่คือวิธีการที่สมบูรณ์ที่มีเพียงปุ่มเดียวคือ 'ตกลง' เพื่อปิด UIAlert:
- (void) myAlert: (NSString*)errorMessage
{
UIAlertView *myAlert = [[UIAlertView alloc]
initWithTitle:errorMessage
message:@""
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"ok", nil];
myAlert.cancelButtonIndex = -1;
[myAlert setTag:1000];
[myAlert show];
}
หน้านี้แสดงวิธีการเพิ่ม UIAlertController หากคุณใช้ Swift
การแจ้งเตือนอย่างง่ายด้วยข้อมูลอาร์เรย์:
NSString *name = [[YourArray objectAtIndex:indexPath.row ]valueForKey:@"Name"];
NSString *msg = [[YourArray objectAtIndex:indexPath.row ]valueForKey:@"message"];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:name
message:msg
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
สำหรับ Swift 3:
let alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
self.present(alert, animated: true, completion: nil)