UIAlertView - видовые представления сообщений

Внимание UIAlertView устарело начиная с iOS 9, и заменено UIAlertController, который и стоит использовать.

Видовое представление сообщения отображает краткое и информативное сообщение с предупреждением для пользователя. Оно передает важную информацию о приложении или устройстве, прерывая работу пользователя и требуя от него, отказаться от того, что они делают, или выбрать действие или отклонить предупреждение. Например, iOS использует оповещения для предупреждения пользователя, что заряд батареи на исходе, поэтому они могут подключить адаптер питания, прежде чем их работа прервется. Видовое представление сообщения появляется в верхней части контента приложения, и должно быть вручную закрыто пользователем, прежде чем он сможет возобновить взаимодействие с приложением.

uialertview

Создание Alert View (программно)

Вы не можете создать вид сообщения в Interface Builder. Alert View отображается поверх отображаемого вида, не давая пользователю взаимодействовать с приложением, пока тот не уберет его. Если вид сообщения содержит дополнительные кнопки, то необходимо реализовать делегат для вида сообщения, для обработки их нажатия.

Видовое представление сообщения является экземпляром класса UIAlertView, вы можете инициализировать ваш вид сообщения одним методом: initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:.

После создания и инициализации, для отображения сообщения вызывается его метод show.

Пример создания, инициализации и вывода сообщения:

UIAlertView *theAlert = [[UIAlertView alloc] initWithTitle:@"Title"
                                                 message:@"This is the message."
                                                delegate:self
                                       cancelButtonTitle:@"OK"
                                       otherButtonTitles:nil];
[theAlert show];

Свойство alertViewStyle класса UIAlertView позволяет создавать вид сообщения с одним полем текстового ввода или двумя (для логина и пароля), возможные значения:

  • UIAlertViewStyleDefault - без полей ввода.
  • UIAlertViewStyleSecureTextInput - текстовое поле для ввода пароля.
  • UIAlertViewStylePlainTextInput - текстовое поле для ввода текста.
  • UIAlertViewStyleLoginAndPasswordInput - два текстовых поля для логина и пароля.

Доступ к текстовым полям осуществляется через метод textFieldAtIndex:, если поле ввола одно, то индекс всегда 0, если два, то логин имеет индекс 0, а пароль - 1.

Пример вывода сообщения с дополнительной кнопкой "Login", и запросом на ввод пароля, а также реализация делегата для обработки события нажатия кнопки "Login".

#pragma Alert View

- (IBAction)goCommit:(id)sender {
  UIAlertView* alertView = [[UIAlertView alloc]initWithTitle:@"Title"
                          message:@"Enter User Name and password"
                          delegate:self cancelButtonTitle:@"Cancel"
                          otherButtonTitles:@"Login", nil];
  alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
  [alertView show];
}

// Метод делегата, отслеживающий нажатие на кнопки
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
  NSString* login = [[alertView textFieldAtIndex:0] text];
  NSString* psw = [[alertView textFieldAtIndex:1] text];
  NSLog(@"Button with index %d clicked, Login:%@, Password:%@",buttonIndex,login,psw);
}

Вывод после ввода пароля и логина и нажатия на кнопку "Login":

keyboardApp[4217:60b] Button with index 1 clicked, Login:alex, Password:123
 
 
homeЗаметили ошибкукарта сайта 
   Made on a Mac