Відповіді:
Так, це UIAlertView
, мабуть, те, що ви шукаєте. Ось приклад:
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];
Якщо ви хочете зробити щось більш фантазійне, скажімо, відобразити у своєму користувальницькому користувальницькому інтерфейсі UIAlertView
, ви можете підкласирувати UIAlertView
та вставити в init
метод власні компоненти інтерфейсу . Якщо ви хочете відповісти на натискання кнопки після UIAlertView
появи, ви можете встановити delegate
вищезазначене та застосувати - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
метод.
Ви також можете подивитися на UIActionSheet
.
Різні люди, які приходять до цього питання, мають на увазі різні речі у вікні спливаючого вікна. Я настійно рекомендую ознайомитися з документацією щодо тимчасових переглядів . Моя відповідь багато в чому резюме цієї та іншої пов'язаної з цим документації.
Попередження відображають назву та необов'язкове повідомлення. Користувач повинен підтвердити це (попередження однією кнопкою) або зробити простий вибір (попередження двома кнопками) перед тим, як продовжувати роботу. Ви створюєте попередження за допомогою UIAlertController
.
Варто навести попередження та поради щодо документації щодо створення непотрібних сповіщень.
Примітки:
UIAlertView
був застарілим. Слід UIAlertController
створити сповіщення зараз.Аркуші дій надають користувачеві список варіантів. Вони з’являються або в нижній частині екрана, або в переході, залежно від розміру та орієнтації пристрою. Як і у випадку сповіщень, UIAlertController
для складання опису застосовується а. До цього iOS 8 UIActionSheet
використовувався, але зараз у документації сказано:
Важливо:
UIActionSheet
не рекомендуються в прошивці 8. (Помітять , щоUIActionSheetDelegate
також НЕ рекомендуються.) Для створення і управління листами дій в прошивці 8 , а потім, замість того, щоб використовуватиUIAlertController
зpreferredStyle
зUIAlertControllerStyleActionSheet
.
Модальний вид є самодостатнім видом , який має все необхідне для виконання завдання. Він може або не може займати весь екран. Щоб створити модальний вигляд, використовуйте a UIPresentationController
з одним із модальних стилів презентації .
Дивись також
Поповеров вид , який з'являється , коли користувач крани на що - то і зникає при торканні від нього. На ній є стрілка із зазначенням елемента керування чи місцезнаходження, звідки зроблено кран. Вміст може бути майже всім, що ви можете помістити в контролер перегляду. Ви робите popover з a UIPopoverPresentationController
. (Раніше UIPopoverController
рекомендованим методом був iOS 8 ).
Раніше Popovers були доступні лише на iPad, але, починаючи з iOS 8, ви також можете отримати їх на iPhone (дивіться тут , тут та тут ).
Дивись також
Сповіщення - це звуки / вібрації, сповіщення / банери або значки, які сповіщають користувача про щось, навіть коли програма не працює на передньому плані.
Дивись також
В Android, Toast - це коротке повідомлення, яке відображається на екрані на короткий час, а потім автоматично зникає, не порушуючи взаємодії користувачів із додатком.
Люди, які походять з Android-системи, хочуть знати, що таке iOS версія Toast. Деякі приклади цих питань він може знайти тут , тут , тут і тут . Відповідь полягає в тому, що в iOS немає еквівалента Toast . Представлені різні способи вирішення:
UIView
Однак моя рада - дотримуватися стандартних параметрів інтерфейсу, які вже поставляються з iOS. Не намагайтеся робити так, щоб ваш додаток виглядав і поводився так само, як версія Android. Подумайте, як перепакувати його так, щоб він виглядав і виглядав як додаток для iOS.
З часу виходу iOS 8, UIAlertView
тепер застарілий; UIAlertController є заміною.
Ось зразок того, як це виглядає в 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
}
Як бачите, API дозволяє нам реалізовувати зворотні дзвінки як для дії, так і під час подання попередження, що досить зручно!
Оновлено для 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
}
Оновлено для iOS 8.0
Оскільки iOS 8.0, вам потрібно буде використовувати UIAlertController як наступне:
-(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];
}
Якщо в моєму прикладі "Я" - це UIViewController, який реалізує метод "presentViewController" для спливаючого вікна.
Девід
Для Swift 3 та Swift 4:
Оскільки UIAlertView застаріло, є хороший спосіб відображення сповіщення на 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)
Застаріле:
Це швидка версія, натхненна перевіреною відповіддю:
Відображення AlertView:
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()
Додайте делегата до контролера перегляду:
class AgendaViewController: UIViewController, UIAlertViewDelegate
Коли користувач натисне на кнопку, цей код буде виконаний:
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
}
Хоча я вже писав огляд різних типів спливаючих вікон, більшості людей просто потрібна Оповіщення.
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 # в Xamarin.iOS
var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok");
alert.Show();