Преобразование в информацию о версии раскадровок
Работа с архивами является новым способом создать пользовательские интерфейсы для приложений для iOS, начинаясь с iOS 5 и Xcode 4.2. Используя раскадровки, можно разработать контроллеры представления, составляющие приложение как сцены в холсте проекта XCode и визуально определяющие навигацию между сценами с помощью переходов.
Существует несколько шагов, которые необходимо предпринять для преобразования существующего проекта приложения для iOS использовать раскадровки. Кроме того, существуют другие новые образцы, которые можно принять.
Содержание:
Сконфигурируйте делегата приложения
Делегат приложения ответственен за загрузку раскадровки и управление окном. Необходимо указать имя делегата приложения класс в UIApplicationMain, и гарантируйте, что делегату приложения вызвали свойство window.
Если у Вас нет делегата существующего приложения классом, необходимо создать тот. Минимальная реализация была бы похожа на это:
#import <UIKit/UIKit.h> |
@interface AppDelegate : NSObject <UIApplicationDelegate> |
@property (strong, nonatomic) UIWindow *window; |
@end |
#import "AppDelegate.h" |
@implementation AppDelegate |
@synthesize window = _window; |
@end |
В main.m файл, набор делегат приложения класс в UIApplicationMain.
Ваш существующий main.m файл, вероятно, выглядит примерно так:
#import <UIKit/UIKit.h> |
int main(int argc, char *argv[]) { |
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; |
int retVal = UIApplicationMain(argc, argv, nil, nil); |
[pool release]; |
return retVal; |
} |
Измените его для сходства с этим:
#import <UIKit/UIKit.h> |
#import "AppDelegate.h" |
int main(int argc, char *argv[]) { |
@autoreleasepool { |
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); |
} |
} |
(замените «AppDelegate» именем Вашего делегата приложения класс).
Добавьте раскадровку к проекту
Добавьте новый файл раскадровки к проекту. Условно, начальную раскадровку называют MainStoryboard.
Добавьте свой первый контроллер представления к раскадровке от Библиотеки объектов. Необходимо видеть, что переход sourceless указывает, что это - первая сцена.
Если первый контроллер представления встраивается в контейнер, такой как панель контроллера навигации или контроллер панели вкладок, то используйте Редактора>, Встраивают Во встроить его соответственно. Переход sourceless должен теперь указать на контейнерный контроллер представления:
Установите основную раскадровку для проекта
В Сводке для приложения Target набор значение Основной Раскадровки к имени файла раскадровки Вы создали. Если существует значение для Основного Интерфейса (для указания первого файла пера), удостоверьтесь, что Вы удаляете его.
Доступ к первому контроллеру представления
Делегат приложения не представлен в раскадровке. Если необходимо получить доступ к первому контроллеру представления (например, если Вы создаете Базовое Применение данных и хотите передать контекст управляемого объекта делегата первому контроллеру представления), можно сделать так через окно rootViewController. Если корневой контроллер представления является контейнерным контроллером — таким как экземпляр UINavigationController— тогда можно получить доступ контроллеру представления с помощью надлежащего средства доступа для содержания контейнера, например:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
UINavigationController *rootNavigationController = (UINavigationController *)self.window.rootViewController; |
MyViewController *myViewController = (MyViewController *)[rootNavigationController topViewController]; |
// Configure myViewController. |
return YES; |
} |
Конфигурирование табличных представлений
Существует несколько новых методов работы с табличными представлениями при использовании раскадровок.
dequeueReusableCellWithIdentifier:метод, как гарантируют, возвратит ячейку (при условии, что Вы определили ячейку с помощью данного идентификатора). Таким образом нет никакой потребности использовать “проверку возвращаемое значение метода” образец, как имел место в предыдущей типичной реализацииtableView:cellForRowAtIndexPath:. Вместо:UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure and return the cell.
Вы теперь записали бы просто:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure and return the cell.
Можно сконфигурировать ячейки табличного представления непосредственно в табличном представлении. По умолчанию прототипный стиль ячеек установлен в Пользовательский, так, чтобы можно было разработать собственную ячейку. Можно также установить стиль в один из встроенных
UITableViewCellстили ячеек при помощи Инспектора Атрибутов.
Для табличного представления, которое является представлением a
UITableViewControllerэкземпляр, можно сконфигурировать статическое содержание непосредственно в раскадровке. В Инспекторе Атрибутов, набор содержание табличного представления к Статическим Ячейкам.
При использовании статических ячеек можно соединить выходы от контроллера табличного представления до отдельных ячеек так, чтобы можно было сконфигурировать содержание ячейки во время выполнения.
// Declare properties for the outlets.
@property (nonatomic, weak) IBOutlet UITableViewCell *firstGroupFirstRowCell;
// Configure cells directly.
firstGroupFirstRowCell.detailTextLabel.text = newTextValue;
Copyright © 2015 Apple Inc Все права защищены. Условия использования | Политика конфиденциальности | обновленный: 12.10.2011