Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«iOS. ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 9

Автор Π’Π°Π½Π΄Π°Π΄ Нахавандипур

}


β€” (void) setObject:(id)paramObject atIndexedSubscript:(NSUInteger)paramIndex{

switch (paramIndex){

case 0:{

self.firstName = paramObject;

break;

}

case 1:{

self.lastName = paramObject;

break;

}

default:{

[NSException raise:@"Invalid index" format: nil];

}

}

}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь написанный Ρ€Π°Π½Π΅Π΅ ΠΊΠΎΠ΄ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Person *person = [Person new];

person[kFirstNameKey] = @"Tim";

person[kLastNameKey] = @"Cook";

NSString *firstNameByKey = person[kFirstNameKey];

NSString *lastNameByKey = person[kLastNameKey];


NSString *firstNameByIndex = person[0];

NSString *lastNameByIndex = person[1];


if ([firstNameByKey isEqualToString: firstNameByIndex] &&

[lastNameByKey isEqualToString: lastNameByIndex]){

NSLog(@"Success");

} else {

NSLog(@"Something is not right");

}


Если Π²Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ всС шаги, описанныС Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅, Ρ‚ΠΎ Π½Π° консоли Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Success.

1.1. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ UIAlertView

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ»ΠΎΡΡŒ сообщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ (Alert). Π’Π°ΠΊΠΈΠ΅ сообщСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ дСйствиС, Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρƒ Π½Π΅Π³ΠΎ имя ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈΠ»ΠΈ просто ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ввСсти ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ простой тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

РСшСниС

Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ UIAlertView.

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

Если Π²Ρ‹ сами ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ iOS, Ρ‚ΠΎ Π²Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ попадались Π²ΠΈΠ΄Ρ‹-прСдупрСТдСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 1.1.


Рис. 1.1. Π’ΠΈΠ΄-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Ρ‡Ρ‚ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ трСбуСтся Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ соСдинСниС с Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ


ΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ способ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΠ΄Π°-прСдупрСТдСния Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, разумССтся, Π² использовании Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ конструктора-ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°:


β€” (void) viewDidAppear:(BOOL)paramAnimated{


[super viewDidAppear: paramAnimated];


UIAlertView *alertView = [[UIAlertView alloc]

initWithTitle:@"Alert"

message:@"You've been delivered an alert"

delegate: nil

cancelButtonTitle:@"Cancel"

otherButtonTitles:@"OK", nil];

[alertView show];

}


Когда этот Π²ΠΈΠ΄-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ отобразится Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΎΠ½ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ экран, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π½Π° рис. 1.2.


Рис. 1.2. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π²ΠΈΠ΄-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ


Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΈΠ΄-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ прСдупрСТдСния show. Рассмотрим описания всСх ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ конструктору-ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρƒ Π²ΠΈΠ΄Π°-прСдупрСТдСния:

β€’ title β€” строка, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Π²ΠΈΠ΄Π°-прСдупрСТСния. На рис. 1.2 эта строка β€” Title;

β€’ message β€” сообщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ отобраТаСтся Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. На рис. 1.2 для этого сообщСния Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Message;

β€’ delegate β€” ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-Π΄Π΅Π»Π΅Π³Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π²ΠΈΠ΄Ρƒ-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ. Π—Π°Ρ‚Π΅ΠΌ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния прСдупрСТдСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΌΠ΅Ρ‚ Π½Π° ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΡƒΡŽ Π² этом Π²ΠΈΠ΄Π΅. ΠžΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ UIAlertViewDelegate;

β€’ cancelButtonTitle β€” строка, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ (Cancel Button) Π² Π²ΠΈΠ΄Π΅-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ. Если Π² Π²ΠΈΠ΄Π΅-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡ‚ΠΌΠ΅Π½Ρ‹, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΈΠ΄ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ дСйствиС, Ρ‚ΠΎ ΠΎΠ½ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π½Π° этой ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ строка-надпись Cancel (ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ). Надпись для этой ΠΊΠ½ΠΎΠΏΠΊΠΈ опрСдСляСтС Π²Ρ‹ сами, ΠΈ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ β€” ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ Π±Π΅Π· ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠžΡ‚ΠΌΠ΅Π½Π°;

β€’ otherButtonTitles β€” надписи Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ…, Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ. РаздСляйтС Ρ‚Π°ΠΊΠΈΠ΅ надписи запятыми. НуТно ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ списка Π½Π°Π·Π²Π°Π½ΠΈΠΉ стоит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ nil, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ сигнальной ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π±Π΅Π· ΠΊΠ½ΠΎΠΏΠΎΠΊ. Но Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ смоТСт ΡƒΠ±Ρ€Π°Ρ‚ΡŒ с экрана. Боздавая Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΈΠ΄, Π²Ρ‹ ΠΊΠ°ΠΊ программист Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ убирался автоматичСски, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· 3 сСкунды послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ появится. Π’ΠΈΠ΄-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ убираСтся автоматичСски, β€” это настоящСС бСдствиС, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π½ΠΈΠ·ΠΊΠΈΠ΅ ΠΎΡ†Π΅Π½ΠΊΠΈ Π½Π° App Store Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс. Π’Π΅Π»ΠΈΠΊΠ° Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²ΠΎΠΎΠ±Ρ‰Π΅ удалят с Ρ€Ρ‹Π½ΠΊΠ°.

Π’ΠΈΠ΄Ρ‹-прСдупрСТдСния ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… стилСй. Π’ классС UIAlertView Π΅ΡΡ‚ΡŒ свойство alertViewStyle Ρ‚ΠΈΠΏΠ° UIAlertViewStyle:


typedef NS_ENUM(NSInteger, UIAlertViewStyle) {

UIAlertViewStyleDefault = 0,

UIAlertViewStyleSecureTextInput,

UIAlertViewStylePlainTextInput,

UIAlertViewStyleLoginAndPasswordInput

};


Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих стилСй:

β€’ UIAlertViewStyleDefault β€” стандартный ΡΡ‚ΠΈΠ»ΡŒ Π²ΠΈΠ΄Π°-прСдупрСТдСния, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π½Π° рис. 1.2;

β€’ UIAlertViewStyleSecureTextInput β€” ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ стилС Π² Π²ΠΈΠ΄Π΅-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ тСкстовоС ΠΏΠΎΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ станСт ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚ зритСля символы, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π’Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ прСдупрСТдСния Π²Π°ΠΌ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π²Ρ‹ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚Π΅ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΅Π³ΠΎ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для дистанционного банковского обслуТивания;

β€’ UIAlertViewStylePlainTextInput β€” ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ стилС Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π΅Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ тСкстовоС ΠΏΠΎΠ»Π΅. Π­Ρ‚ΠΎΡ‚ ΡΡ‚ΠΈΠ»ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для случаСв, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ проситС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти Π½Π΅ΡΠ΅ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΎΠΌΠ΅Ρ€ Π΅Π³ΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°;

β€’ 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.");

}