Câu trả lời:
Yup, UIAlertView
có lẽ là những gì bạn đang tìm kiếm. Đây là một ví dụ:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No network connection"
message:@"You must be connected to the internet to use this app."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
Nếu bạn muốn làm một cái gì đó lạ mắt hơn, giả sử hiển thị một UI tùy chỉnh trong bạn UIAlertView
, bạn có thể phân lớp UIAlertView
và đặt các thành phần UI tùy chỉnh trong init
phương thức. Nếu bạn muốn trả lời nhấn nút sau khi UIAlertView
xuất hiện, bạn có thể đặt delegate
ở trên và thực hiện - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
phương thức.
Bạn cũng có thể muốn nhìn vào UIActionSheet
.
Những người khác nhau đến câu hỏi này có nghĩa là những điều khác nhau bởi một hộp bật lên. Tôi rất khuyên bạn nên đọc tài liệu Chế độ xem tạm thời . Câu trả lời của tôi chủ yếu là một bản tóm tắt về điều này và các tài liệu liên quan khác.
Cảnh báo hiển thị một tiêu đề và một thông báo tùy chọn. Người dùng phải xác nhận nó (cảnh báo một nút) hoặc đưa ra lựa chọn đơn giản (cảnh báo hai nút) trước khi tiếp tục. Bạn tạo một cảnh báo với a UIAlertController
.
Rất đáng để trích dẫn cảnh báo và lời khuyên của tài liệu về việc tạo các cảnh báo không cần thiết.
Ghi chú:
UIAlertView
không được chấp nhận. Bạn nên sử dụng UIAlertController
để tạo cảnh báo ngay bây giờ.Bảng hành động cung cấp cho người dùng một danh sách các lựa chọn. Chúng xuất hiện ở dưới cùng của màn hình hoặc trong một cửa sổ bật lên tùy thuộc vào kích thước và hướng của thiết bị. Như với cảnh báo, a UIAlertController
được sử dụng để tạo một bảng hành động. Trước iOS 8, UIActionSheet
đã được sử dụng, nhưng bây giờ tài liệu nói:
Quan trọng:
UIActionSheet
bị phản đối trong iOS 8. (Lưu ý rằngUIActionSheetDelegate
cũng bị phản đối). Để tạo và quản lý tờ hành động trong iOS 8 và sau đó, thay vì sử dụngUIAlertController
với mộtpreferredStyle
sốUIAlertControllerStyleActionSheet
.
Một khung nhìn phương thức là một khung nhìn khép kín có mọi thứ nó cần để hoàn thành một nhiệm vụ. Nó có thể hoặc không thể chiếm toàn màn hình. Để tạo chế độ xem theo chế độ, hãy sử dụng một UIPresentationController
với một trong các Kiểu trình bày phương thức .
Xem thêm
Một Popover là một cái nhìn xuất hiện khi một vòi sử dụng trên một cái gì đó và biến mất khi khai thác ra khỏi nó. Nó có một mũi tên hiển thị điều khiển hoặc vị trí từ nơi vòi được thực hiện. Nội dung có thể là bất cứ thứ gì bạn có thể đặt trong Trình điều khiển xem. Bạn làm một popover với a UIPopoverPresentationController
. (Trước iOS 8, UIPopoverController
là phương pháp được đề xuất.)
Trước đây, popovers chỉ có sẵn trên iPad, nhưng bắt đầu với iOS 8, bạn cũng có thể tải chúng trên iPhone (xem tại đây , tại đây và tại đây ).
Xem thêm
Thông báo là âm thanh / rung, cảnh báo / biểu ngữ hoặc huy hiệu thông báo cho người dùng về thứ gì đó ngay cả khi ứng dụng không chạy ở nền trước.
Xem thêm
Trong Android, Toast là một thông báo ngắn hiển thị trên màn hình trong một khoảng thời gian ngắn và sau đó tự động biến mất mà không làm gián đoạn tương tác của người dùng với ứng dụng.
Những người đến từ nền tảng Android muốn biết Toast phiên bản iOS là gì. Một số ví dụ về những câu hỏi này anh ta có thể tìm thấy ở đây , đây , đây và đây . Câu trả lời là không có Toast tương đương với iOS . Các cách giải quyết khác nhau đã được trình bày bao gồm:
UIView
Tuy nhiên, lời khuyên của tôi là hãy gắn bó với các tùy chọn UI tiêu chuẩn đã có trong iOS. Đừng cố làm cho ứng dụng của bạn trông và hoạt động giống hệt như phiên bản Android. Hãy suy nghĩ về cách đóng gói lại để nó trông giống như một ứng dụng iOS.
Kể từ khi phát hành iOS 8, UIAlertView
hiện không còn sử dụng nữa; UIAlertControll là sự thay thế.
Đây là một ví dụ về giao diện của nó trong Swift:
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertControllerStyle.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertActionStyle.default)
{
(UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
() -> Void in
}
Như bạn có thể thấy, API cho phép chúng tôi thực hiện các cuộc gọi lại cho cả hành động và khi chúng tôi trình bày cảnh báo, điều này khá tiện dụng!
Đã cập nhật cho Swift 4.2
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertController.Style.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertAction.Style.default)
{
(UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
() -> Void in
}
Đã cập nhật cho iOS 8.0
Kể từ iOS 8.0, bạn sẽ cần sử dụng UIAlertControll như sau:
-(void)alertMessage:(NSString*)message
{
UIAlertController* alert = [UIAlertController
alertControllerWithTitle:@"Alert"
message:message
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* defaultAction = [UIAlertAction
actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
}
Trong đó bản thân trong ví dụ của tôi là một UIViewControll, thực hiện phương thức "PresentViewControll" cho một cửa sổ bật lên.
David
Dành cho Swift 3 & Swift 4:
Vì UIAlertView không được dùng nữa, nên có cách tốt để hiển thị Thông báo trên Swift 3
let alertController = UIAlertController(title: NSLocalizedString("No network connection",comment:""), message: NSLocalizedString("connected to the internet to use this app.",comment:""), preferredStyle: .alert)
let defaultAction = UIAlertAction(title: NSLocalizedString("Ok", comment: ""), style: .default, handler: { (pAlert) in
//Do whatever you want here
})
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)
Không dùng nữa
Đây là phiên bản nhanh chóng lấy cảm hứng từ phản hồi đã kiểm tra:
Hiển thị cảnh báo:
let alert = UIAlertView(title: "No network connection",
message: "You must be connected to the internet to use this app.", delegate: nil, cancelButtonTitle: "Ok")
alert.delegate = self
alert.show()
Thêm đại biểu vào trình điều khiển xem của bạn:
class AgendaViewController: UIViewController, UIAlertViewDelegate
Khi người dùng nhấp vào nút, mã này sẽ được thực thi:
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
}
Mặc dù tôi đã viết tổng quan về các loại cửa sổ bật lên khác nhau, hầu hết mọi người chỉ cần một Thông báo.
class ViewController: UIViewController {
@IBAction func showAlertButtonTapped(_ sender: UIButton) {
// create the alert
let alert = UIAlertController(title: "My Title", message: "This is my message.", preferredStyle: UIAlertController.Style.alert)
// add an action (button)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil))
// show the alert
self.present(alert, animated: true, completion: nil)
}
}
Câu trả lời đầy đủ hơn của tôi là ở đây .
Đây là phiên bản C # trong Xamarin.iOS
var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok");
alert.Show();