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

iOS. Приемы программирования


Скачать книгу

управления, этот параметр выбирается и остается выбранным, как показано на рис. 1.23. Если вы хотите, чтобы пользователь выбрал параметр, но кнопка этого параметра не оставалась нажатой, а возвращалась к исходной форме (так сказать, «отщелкивалась обратно», как и обычная кнопка), то нужно задать для свойства momentary сегментированного элемента управления значение YES:

      self.mySegmentedControl.momentary = YES;

      Одна из самых приятных особенностей сегментированных элементов управления заключается в том, что они могут содержать не только текст, но и изображения. Для этого нужно просто использовать метод-инициализатор initWithObjects: класса UISegmentedControl и передать с этим методом те строки и изображения, которые будут применяться при реализации соответствующего пользовательского интерфейса:

      – (void)viewDidLoad{

      [super viewDidLoad];

      NSArray *segments = [[NSArray alloc] initWithObjects:

      @"iPhone",

      [UIImage imageNamed:@"iPad"],

      @"iPod",

      @"iMac",

      ];

      self.mySegmentedControl = [[UISegmentedControl alloc]

      initWithItems: segments];

      CGRect segmentedFrame = self.mySegmentedControl.frame;

      segmentedFrame.size.height = 128.0f;

      segmentedFrame.size.width = 300.0f;

      self.mySegmentedControl.frame = segmentedFrame;

      self.mySegmentedControl.center = self.view.center;

      [self.view addSubview: self.mySegmentedControl];

      }

      В данном примере файл iPad.png – это просто миниатюрное изображение «айпада», добавленное в наш проект.

      В iOS 7 Apple отказалась от использования свойства segmentedControlStyle класса UISegmentedControl, поэтому теперь сегментированные элементы управления имеют всего один стиль, задаваемый по умолчанию. Мы больше не можем изменять этот стиль.

      1.9. Представление видов и управление ими с помощью UIViewController

      Постановка задачи

      Необходимо иметь возможность переключаться между видами в вашем приложении.

      Решение

      Воспользуйтесь классом UIViewController.

      Обсуждение

      Стратегия разработки для iOS, предложенная Apple, предполагает использование паттерна «модель – вид – контроллер» (MVC) и соответствующее разделение задач. Виды – это элементы, отображаемые для пользователя, а модель – это абстракция с данными, которыми управляет приложение. Контроллер – это перемычка, соединяющая модель и вид. Контроллер (в данном случае речь идет о контроллере вида) управляет отношениями между видом и моделью. Почему же этими отношениями не занимается вид? Ответ довольно прост: если бы мы возлагали эти задачи на вид, код вида становился бы очень запутанным. Кроме того, такой подход тесно связывал бы виды с моделью, что не очень хорошо.

      Контроллеры видов можно загружать из файлов XIB (для использования с конструктором интерфейсов) или просто создавать с помощью программирования. Сначала рассмотрим, как создать контроллер вида, не пользуясь файлом XIB.

      Контроллеры видов удобно создавать в Xcode. Теперь, когда вы уже создали шаблон приложения с помощью шаблона Empty Application (Пустое приложение), выполните следующие шаги, чтобы создать новый контроллер вида для вашего приложения.

      1. В Xcode перейдите в меню File (Файл) и там выберите New-New File (Новый– Новый файл).

      2. В диалоговом окне New File (Новый файл) убедитесь, что слева выбраны категория iOS и подкатегория Cocoa Touch. Когда сделаете это, выберите класс UIViewController в правой части диалогового окна, а затем нажмите Next (Далее) (рис. 1.24).