iOS. Приемы программирования. Вандад Нахавандипур
Чтение книги онлайн.

Читать онлайн книгу iOS. Приемы программирования - Вандад Нахавандипур страница 18

СКАЧАТЬ – при таком стиле у пользователя будет отображаться незащищенное текстовое поле. Этот стиль отлично подходит для случаев, когда вы просите пользователя ввести несекретную последовательность символов, например номер его телефона;

      • UIAlertViewStyleLoginAndPasswordInput – при таком стиле в виде-предупреждении будет два текстовых поля: незащищенное – для имени пользователя и защищенное – для пароля.

      Если вам необходимо получать уведомление, когда пользователь начинает работать с видом-предупреждением, укажите объект-делегат для вашего предупреждения. Этот делегат должен подчиняться протоколу UIAlertViewDelegate. Самый важный метод, определяемый в этом протоколе, – alertView: clickedButtonAtIndex:, который вызывается сразу же, как только пользователь нажимает на одну из кнопок в виде-предупреждении. Индекс нажатой кнопки передается вам через параметр clickedButtonAtIndex.

      В качестве примера отобразим предупреждение пользователю и спросим, хочет ли он перейти на сайт в браузере Safari после того, как нажмет ссылку на этот сайт, присутствующую в нашем пользовательском интерфейсе. В предупреждении будут отображаться две кнопки: Yes (Да) и No (Нет). В делегате вида-предупреждения мы увидим, какая кнопка была нажата, и предпримем соответствующие действия.

      Сначала реализуем два очень простых метода, которые возвращают надпись на той или иной из двух кнопок:

      – (NSString *) yesButtonTitle{

      return @"Yes";

      }

      – (NSString *) noButtonTitle{

      return @"No";

      }

      Теперь нужно убедиться, что контроллер нашего вида подчиняется протоколу UIAlertViewDelegate:

      #import <UIKit/UIKit.h>

      #import "ViewController.h"

      @interface ViewController () <UIAlertViewDelegate>

      @end

      @implementation ViewController

      

      Следующий шаг – создать и отобразить для пользователя окно с предупреждением:

      – (void)viewDidAppear:(BOOL)animated{

      [super viewDidAppear: animated];

      self.view.backgroundColor = [UIColor whiteColor];

      NSString *message = @"Are you sure you want to open this link in Safari?";

      UIAlertView *alertView = [[UIAlertView alloc]

      initWithTitle:@"Open Link"

      message: message

      delegate: self

      cancelButtonTitle: [self noButtonTitle]

      otherButtonTitles: [self yesButtonTitle], nil];

      [alertView show];

      }

      Вид-предупреждение будет выглядеть примерно как на рис. 1.3.

      Рис. 1.3. Вид-предупреждение с кнопками No (Нет) и Yes (Да)

      Далее нужно узнать, какой вариант пользователь выбрал в нашем окне – No (Нет) или Yes (Да). Для этого потребуется реализовать метод alertView: clickedButtonAtIndex:, относящийся к делегату нашего вида-предупреждения:

      – (void) alertView:(UIAlertView *)alertView

      clickedButtonAtIndex:(NSInteger)buttonIndex{

      NSString *buttonTitle = [alertView buttonTitleAtIndex: buttonIndex];

      if ([buttonTitle isEqualToString: [self yesButtonTitle]]){

      NSLog(@"User pressed the Yes button.");

      }

      else if ([buttonTitle isEqualToString: [self noButtonTitle]]){

      NSLog(@"User pressed the No button.");

      }

      }

      Стоит СКАЧАТЬ