Ответы:
Да, это 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
не рекомендуется в iOS 8. (Обратите внимание, чтоUIActionSheetDelegate
это также не рекомендуется.) Для создания и управления листами действий в iOS 8 и более поздних версиях вместо этого используйтеUIAlertController
сpreferredStyle
ofUIAlertControllerStyleActionSheet
.
Модальный вид является самодостаточным видом , который имеет все необходимое для выполнения задачи. Это может или не может занять весь экран. Чтобы создать модальное представление, используйте UIPresentationController
один из модальных стилей представления .
Смотрите также
Поповер вид , который появляется , когда пользователь краны на что - то и исчезает при касании от него. У него есть стрелка, показывающая элемент управления или место, откуда был сделан кран. Контент может быть чем угодно, что вы можете поместить в View Controller. Вы делаете поповер с UIPopoverPresentationController
. (До iOS 8 UIPopoverController
был рекомендуемый метод.)
В прошлом всплывающие окна были доступны только на iPad, но начиная с iOS 8 вы также можете получить их на iPhone (см. Здесь , здесь и здесь ).
Смотрите также
Уведомления - это звуки / вибрации, оповещения / баннеры или значки, которые уведомляют пользователя о чем-либо, даже если приложение не работает на переднем плане.
Смотрите также
В Android тост - это короткое сообщение, которое отображается на экране в течение короткого промежутка времени, а затем автоматически исчезает, не нарушая взаимодействия пользователя с приложением.
Люди, пришедшие из 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];
}
Где self в моем примере - это 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();