Преобразование в информацию о версии раскадровок

Работа с архивами является новым способом создать пользовательские интерфейсы для приложений для iOS, начинаясь с iOS 5 и Xcode 4.2. Используя раскадровки, можно разработать контроллеры представления, составляющие приложение как сцены в холсте проекта XCode и визуально определяющие навигацию между сценами с помощью переходов.

Существует несколько шагов, которые необходимо предпринять для преобразования существующего проекта приложения для iOS использовать раскадровки. Кроме того, существуют другие новые образцы, которые можно принять.

Содержание:

Сконфигурируйте делегата приложения

Делегат приложения ответственен за загрузку раскадровки и управление окном. Необходимо указать имя делегата приложения класс в UIApplicationMain, и гарантируйте, что делегату приложения вызвали свойство window.

Если у Вас нет делегата существующего приложения классом, необходимо создать тот. Минимальная реализация была бы похожа на это:

Перечисление 1-1Minimal приложения делегирует заголовочный файл
#import <UIKit/UIKit.h>
@interface AppDelegate : NSObject <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
Перечисление 1-2Minimal приложения делегирует файл реализации
#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 указывает, что это - первая сцена.

image: Art/firstViewController.pdf

Если первый контроллер представления встраивается в контейнер, такой как панель контроллера навигации или контроллер панели вкладок, то используйте Редактора>, Встраивают Во встроить его соответственно. Переход sourceless должен теперь указать на контейнерный контроллер представления:

image: Art/embeddedFirstViewController.pdf

Установите основную раскадровку для проекта

В Сводке для приложения Target набор значение Основной Раскадровки к имени файла раскадровки Вы создали. Если существует значение для Основного Интерфейса (для указания первого файла пера), удостоверьтесь, что Вы удаляете его.

image: Art/setMainStoryboard.pdf

Доступ к первому контроллеру представления

Делегат приложения не представлен в раскадровке. Если необходимо получить доступ к первому контроллеру представления (например, если Вы создаете Базовое Применение данных и хотите передать контекст управляемого объекта делегата первому контроллеру представления), можно сделать так через окно rootViewController. Если корневой контроллер представления является контейнерным контроллером — таким как экземпляр UINavigationController— тогда можно получить доступ контроллеру представления с помощью надлежащего средства доступа для содержания контейнера, например:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 
    UINavigationController *rootNavigationController = (UINavigationController *)self.window.rootViewController;
    MyViewController *myViewController = (MyViewController *)[rootNavigationController topViewController];
    // Configure myViewController.
    return YES;
}

Конфигурирование табличных представлений

Существует несколько новых методов работы с табличными представлениями при использовании раскадровок.