Xcode 4.2 iOS Пустое приложение и раскадровки

Я новичок Xcode, и я пытаюсь сделать свое первое учебное приложение. Поскольку явно пустой шаблон приложения является единственным шаблоном, который предлагает предварительно интегрированные основные данные, я выбираю это. Однако после этого я не могу заставить интерфейс работать (он остается пустым).

Что я сделал:

  • Пустой шаблон приложения
  • Новый файл раскадровки iPad
  • Разбитый контроллер панели вкладок на нем
  • Изменена основная раскадровка в сводном представлении проекта
  • Хит ⌘R
  • Посмотрел на чистый белый экран iPad без каких-либо вкладок.

Я пробовал отличить от другого проекта, который я создал в качестве приложения панели вкладок (который отражает мои изменения раскадровки), без всякой проницательности.

Ответ 1

Комментируйте (или удаляйте) код создания и отображения окна в AppDelegate.m следующим образом:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    // self.window.backgroundColor = [UIColor whiteColor];
    // [self.window makeKeyAndVisible];

    return YES;
}

При использовании раскадровки автоматически создается основной интерфейс UIWindow. Что происходит в вашем случае, так это то, что вы создаете еще одно белое окно и помещаете его поверх пользовательского интерфейса вкладки.

ТАКЖЕ - обратите внимание, что шаблон Master/Detail также предоставляет вам базовую информацию.

Ответ 2

Для проекта Empty Application вам нужно сделать две вещи после добавления файла раскадровки...

  • Добавьте строку в свой файл Info.plist:

    Key: Main storyboard file base name
    Value: Storyboard
    

    (или как вы назвали ваш файл раскадровки)

  • Удалить содержимое application:didFinishLaunchingWithOptions: кроме return YES;:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        return YES;
    }
    

Ответ 3

Шаблоны проектов Master-Detail и Utility также предлагают Core Data в качестве опции.

Шаблоны Apple для Core Data довольно ужасны. Они добавляют слишком много функциональности в делегат приложения, и они используют ленивую загрузку без необходимости, что еще более усложняет ситуацию.

Вам лучше смотреть на сгенерированный код и добавлять функциональность как отдельный класс в проект, который вы запускаете без Core Data.

Чтобы ответить на ваш непосредственный вопрос, пустой шаблон по умолчанию создает окно программным способом в методе делегата application:didFinishLaunchingWithOptions:. Плакат истории устанавливает окно самостоятельно, поэтому вам нужно удалить этот код из делегата приложения. Единственное, что вам нужно в этом методе, - return YES;.