β (void) alertView:(UIAlertView *)alertView
didDismissWithButtonIndex:(NSInteger)buttonIndex{
[self activityDidFinish: YES];
}
3. ΠΠ°Π»Π΅Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ activityType Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° NSString, ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ β ΠΎΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠΈΡΡΠ΅ΠΌΡ iOS Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΡΠΎΠ±ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π±Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, Π½Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ ΠΎΡ Apple, Π½ΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Β«ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡΒ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΈΠΌΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ° com.pixolity.ios.cookbook.myapp ΠΈ ΠΊΠ»Π°ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ StringReverserActivity, ΡΠΎ ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΠΌ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΡΠΎΠΊΡ com.pixolity.ios.cookbook.myapp.StringReverserActivity, Π²ΠΎΡ ΡΠ°ΠΊ:
β (NSString *) activityType{
return [[NSBundle mainBundle].bundleIdentifier
stringByAppendingFormat:@".%@", NSStringFromClass([self class])];
}
4. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ activityTitle. Π Π½Π΅ΠΌ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ Π²ΠΈΠ΄Π° Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠ° ΡΡΡΠΎΠΊΠ° ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΈ ΡΠΌΠ΅ΡΡΠΈΠ»Π°ΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ Π²ΠΈΠ΄Π°:
β (NSString *) activityTitle{
return @"Reverse String";
}
5. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ activityImage, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½Π°ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ UIImage β ΡΠΎ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ Π²ΠΈΠ΄Π° Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠΉΡΠ΅ ΠΏΠΎ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ β Π΄Π»Ρ ΡΠ΅ΡΡΠ°ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ β ΠΊΠ°ΠΊ Π΄Π»Ρ iPad, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ iPhone/iPod. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠ°ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ iPad Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ 110 Γ 110 ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ², Π° Π΄Π»Ρ iPhone β 86 Γ 86 ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ². ΠΠ΅ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ, ΡΠ°Π·Π΄Π΅Π»ΠΈΠ² ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° 2, ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ ΠΎΠ±ΡΡΠ½ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. Π ΡΡΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ iOS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π°Π»ΡΡΠ°-ΠΊΠ°Π½Π°Π», ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠΎΠ½ Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΌ ΠΈ ΡΡΠΎ Π²Ρ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅ΡΠ΅ Π΅Π³ΠΎ ΡΠ΅ΡΠ½ΡΠΌ ΠΈΠ»ΠΈ Π±Π΅Π»ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ. Π― ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π» ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Ρ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π½Π°Π·Π²Π°Π» Π΅Π³ΠΎ Reverse (ΠΠ±ΡΠ°ΡΠ½ΠΎΠ΅). ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π½ΠΈΠΌ Π½Π° ΡΠΈΡ. 1.29. Π Π²ΠΎΡ ΠΈ ΠΊΠΎΠ΄:
β (UIImage *) activityImage{
return [UIImage imageNamed:@"Reverse"];
}
Π ΠΈΡ. 1.29. Π ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π Π΅ΡΡΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ
6. Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ canPerformWithActivityItems: Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°Π½, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅ΡΠΎΠ΄-ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²ΠΈΠ΄Π° Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΡΠΈΠΏ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠ°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΡΡ Π΅ΠΉ ΡΡΡΠΎΠΊ. Π’ΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π°ΠΉΠ΄Π΅ΠΌ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΌ Π½Π° ΡΡΠΊΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΡΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠΈΡΡ ΡΡΡ ΡΡΡΠΎΠΊΡ. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· 1000 ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΌΡ Π΄Π»Ρ Π½Π°Ρ ΡΠΈΠΏΡ, ΠΌΡ ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΠΌ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡ, Π²Π΅ΡΠ½ΡΠ² NO ΠΎΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°:
β (BOOL) canPerformWithActivityItems:(NSArray *)activityItems{
for (id object in activityItems){
if ([object isKindOfClass: [NSString class]]){
return YES;
}
}
return NO;
}
7. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ prepareWithActivityItems: Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ΅ΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΈΠΏΡ NSArray. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΠ΅ YES ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π° canPerformWithActivityItems:. ΠΡΠΈΠ΄Π΅ΡΡΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π½Π΅ Π²Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ², Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² β ΡΠ΅, ΡΡΠΎ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ΅ΠΌΡ Π²Π°Ρ ΡΠΈΠΏΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠΎΠΊΠΈ:
β (void) prepareWithActivityItems:(NSArray *)activityItems{
NSMutableArray *stringObjects = [[NSMutableArray alloc] init];
for (id object in activityItems){
if ([object isKindOfClass: [NSString class]]){
[stringObjects addObject: object];
}
}
self.activityItems = [stringObjects copy];
}
8. ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, Π½ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΠΎΠ΅: ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ performActivity Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ iOS ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ Π½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π°Π΄ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΡ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, ΠΎΠ±ΡΠ°ΡΠΈΡΡ ΠΈΡ Π²ΡΠ΅ ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΎΠΊΠ½Π΅ Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ:
β (NSString *) reverseOfString:(NSString *)paramString{
NSMutableString *reversed = [[NSMutableString alloc]
initWithCapacity: paramString.length];
for (NSInteger counter = paramString.length β 1;
counter >= 0;
counterβ){
[reversed appendFormat:@"%c", [paramString characterAtIndex: counter]];
}
return [reversed copy];
}
β (void) performActivity{
NSMutableString *reversedStrings = [[NSMutableString alloc] init];
for (NSString *string in self.activityItems){
[reversedStrings appendString: [self reverseOfString: string]];
[reversedStrings appendString:@"\n"];
}
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Reversed"
message: reversedStrings
delegate: self
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alertView show];
}
ΠΡΠ°ΠΊ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°. ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ°ΠΉΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²ΠΈΠ΄Π° ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΠΈΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ Ρ Π½Π°ΡΠ΅ΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
#import Β«ViewController.hΒ»
#import Β«StringReverserActivity.hΒ»
@implementation ViewController
β (void) viewDidAppear:(BOOL)animated{
[super viewDidAppear: animated];
NSArray *itemsToShare = @[
@"Item 1",
@"Item 2",
@"Item 3",
];
UIActivityViewController *activity =
[[UIActivityViewController alloc]
initWithActivityItems: itemsToShare
applicationActivities:@[[StringReverserActivity new]]];
[self presentViewController: activity animated: YES completion: nil];
}
@end
ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ, ΠΊΠ°ΠΊ Π½Π° ΡΠΈΡ. 1.30.
Π ΠΈΡ. 1.30. Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΡΠ»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ Π½Π°ΠΆΠΌΠ΅ΡΠ΅ Π² ΡΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Reverse String (ΠΠ±ΡΠ°ΡΠ΅Π½Π½Π°Ρ ΡΡΡΠΎΠΊΠ°), ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½Π΅ΡΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅ Π½Π° ΡΠΈΡ. 1.31.
Π ΠΈΡ. 1.31. ΠΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
Π Π°Π·Π΄Π΅Π» 1.10.
1.12. ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ UINavigationController
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²ΠΈΠ΄Π° ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ, ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Ρ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ»Π°Π²Π½ΠΎΠΉ Π°Π½ΠΈΠΌΠ°ΡΠΈΠ΅ΠΉ, ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° UINavigationController.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π΄ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ iPhone, iPod touch ΠΈΠ»ΠΈ iPad, ΡΠΎ Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Settings (ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ) ΡΠ΅Π»Π΅ΡΠΎΠ½Π°, ΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Wallpaper (ΠΠ±ΠΎΠΈ) (ΡΠΈΡ. 1.32). Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΊΡΠ°Π½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Settings (ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ) ΠΎΡΠΎΠ΄Π²ΠΈΠ³Π°Π΅ΡΡΡ Π²Π»Π΅Π²ΠΎ, Π° Π½Π° Π΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎ ΡΠΏΡΠ°Π²Π° Π²ΡΡ ΠΎΠ΄ΠΈΡ ΡΠΊΡΠ°Π½ Wallpaper (ΠΠ±ΠΎΠΈ). Π ΡΡΠΎΠΌ ΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΠ΅ΡΡΠ° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ iPhone. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ Π²ΠΈΠ΄ΠΎΠ² Π² ΡΡΠ΅ΠΊ ΠΈ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡ ΠΈΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ°. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΠΈΠ΄Π°, Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π½Π° Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΡΠ΅ΠΊΠ°, Π²ΠΈΠ΄Π΅Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ°ΠΊ, ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΡΠΉ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΠΈΠ΄Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π·ΡΠΈΡΠ΅Π»Ρ, Π° ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Ρ Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, Π²ΠΈΠ΄ΠΈΠΌΡΠΉ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π½Π° Π²Π΅ΡΡ Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΡΡΠ΅ΠΊΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΠΈΠ΄Π°.
Π ΠΈΡ. 1.32. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΠΈΠ΄Π° Π½Π°ΡΡΡΠΎΠ΅ΠΊ, ΠΎΡΠΎΠ΄Π²ΠΈΠ³Π°ΡΡΠΈΠΉ Π²ΠΈΠ΄ Ρ ΠΎΠ±ΠΎΡΠΌΠΈ Π΄Π»Ρ ΡΠΊΡΠ°Π½Π°
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ. ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ°Π³ΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 1.9, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΡΠΎΡΡΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ Π²ΠΈΠ΄Π°. ΠΠ°Π½Π½ΡΠΉ ΡΠ°Π·Π΄Π΅Π» β ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 1.9. ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠ°ΠΉΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ (.m) Π΄Π΅Π»Π΅Π³Π°ΡΠ° Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
#import Β«AppDelegate.hΒ»
#import Β«FirstViewController.hΒ»
@interface AppDelegate ()
@property (nonatomic, strong) UINavigationController *navigationController;