if ([identifier isEqualToString:@"pushSecondViewController"]){
if ([self.textField.text length] == 0){
[self displayTextIsRequired];
return NO;
}
};
return YES;
}
— (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"pushSecondViewController"]){
SecondViewController *nextController =
segue.destinationViewController;
[nextController setText: self.textField.text];
}
}
@end
Метод prepareForSegue: sender: этого контроллера вида вызывает метод экземпляра setText:, относящийся к классу SecondViewController. Как понятно из названия, это класс второго контроллера вида. Мы просто реализуем этот метод следующим образом:
#import «SecondViewController.h»
@interface SecondViewController ()
@end
@implementation SecondViewController
— (void) setText:(NSString *)paramText{
self.title = paramText;
}
@end
Вот и все. Теперь, если вы запустите предложение и введете в текстовое поле текст, скажем, Hello, World! а потом нажмете кнопку, то увидите примерно такую картинку, как на рис. 6.8.
Рис. 6.8.Наш текст успешно отобразился в качестве заголовка второго контроллера вида
Раздел 6.1.
6.3. Добавление в раскадровку контроллера с панелью вкладок
С помощью раскадровок требуется создать приложение, построенное на базе контроллера с панелью вкладок.
Создайте в Xcode приложение с единственным видом и встройте первый контроллер вида в контроллер вида с панелью вкладок. Чтобы сделать это, выполните следующие шаги.
1. В конструкторе интерфейса выберите в раскадровке контроллер вида. В меню Editor (Редактор) выберите пункт Embed in (Встроить), а затем выберите Tab Bar Controller (Контроллер с панелью вкладок) (рис. 6.9).
Рис. 6.9.Встраивание корневого контроллера вида в контроллер с панелью вкладок
2. Перейдите в библиотеку объектов контроллера интерфейсов, найдите там новый экземпляр контроллера вида и перетащите его в раскадровку.
3. Удерживая нажатой клавишу Ctrl, перетащите указатель мыши из контроллера с вкладками в созданный вами контроллер вида (рис. 6.10). Откроется диалоговое окно, в котором следует найти раздел Relationship Segues (Взаимосвязи через сегвеи) и выбрать в нем View Controller (Контроллер вида) (рис. 6.11).
Рис. 6.10.Соединение контроллера вида с контроллером, имеющим панель вкладок
Рис. 6.11.Ассоциирование контроллера вида с массивом контроллеров видов, находящихся в контроллере с панелью вкладок
Теперь запустите приложение в эмуляторе iOS. В нижней части экрана вы увидите два элемента (рис. 6.12). Каждый из этих элементов соответствует одному из ваших контроллеров вида. Если бы это контроллерное приложение с вкладками создавал я, то я поместил бы в каждой из вкладок по навигационному контроллеру. Если вы также хотите задействовать такую возможность, воспользуйтесь приемами, изученными в разделе 6.1, и встройте контроллеры видов в навигационные контроллеры (рис. 6.13).
Рис. 6.12.Контроллеры вида успешно отображаются в контроллере с панелью вкладок
Рис. 6.13.Встраивание ваших контроллеров видов в навигационные контроллеры, расположенные в контроллере панели вкладок
Раздел 6.1.
6.4. Внедрение специальных переходов между сегвеями в раскадровке
Требуется внедрить и использовать в файлах раскадровки новый тип перехода, чтобы перемещение из одного контроллера вида в другой выполнялось специально заданным образом — например, с применением пользовательской анимации.
Создайте подкласс от UIStoryboardSegue и переопределите его метод perform в соответствии со стоящими перед вами задачами.
Читать дальше
Конец ознакомительного отрывка
Купить книгу