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

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

СКАЧАТЬ style="font-size:15px;">      [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;

      @end

      @implementation AppDelegate

      

      Теперь следует инициализировать навигационный контроллер, воспользовавшись его методом initWithRootViewController:, и передать корневой контроллер нашего вида как параметр этого метода. Далее мы зададим навигационный контроллер в в качестве корневого контроллера вида в нашем окне. Здесь главное – не запутаться. UINavigationController – это фактически подкласс UIViewController, а свойство rootViewController, относящееся к нашему окну, принимает любой объект типа UIViewController. Таким образом, если мы хотим сделать навигационный контроллер корневым контроллером нашего вида, мы просто должны задать его в качестве корневого контроллера:

      – (BOOL) application:(UIApplication *)application

      didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

      FirstViewController *viewController = [[FirstViewController alloc]

      initWithNibName: nil

      bundle: nil];

СКАЧАТЬ