>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).
Рис. 1.24. Подкласс нового контроллера вида
3. На следующем экране убедитесь, что в текстовом поле Subclass (Подкласс) указано UIViewController, а также что сняты флажки Targeted for iPad (Разработка для iPad) и With XIB for user interface (Использовать файл XIB для пользовательского интерфейса). Именно такая ситуация показана на рис. 1.25. Нажмите Next (Далее).
Рис. 1.25. Собственный контроллер вида, без использования класса XIB
4. На следующем экране (Save as (Сохранить как)) назовите файл контроллера вида RootViewController и нажмите Save (Сохранить) (рис. 1.26).
Рис. 1.26.