Вандад Нахавандипур

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. Вы можете складывать контроллеры видов в стек и поднимать их из стека. Контроллер вида, в данный момент находящийся на верхней позиции стека, виден пользователю. Итак, только самый верхний контроллер вида показывается зрителю, а чтобы отобразить другой контроллер, нужно либо удалить с верхней позиции контроллер, видимый в настоящий