Xcode 4.2 iOS Пустое приложение и раскадровки - PullRequest
37 голосов
/ 26 октября 2011

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

Что я сделал:

  • Пустой шаблон приложения
  • Новый раскадровка iPadfile
  • Splashed Tab Bar Controller на него
  • Изменен основной раскадровка в сводном представлении проекта
  • Hit ⌘R
  • Stared at pure-белый экран iPad, без вкладок

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

Ответы [ 3 ]

76 голосов
/ 26 октября 2011

Закомментируйте (или удалите) код создания и отображения окна в 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 также дает вамопция основных данных.

39 голосов
/ 12 января 2012

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

  1. Добавить строку в файл Info.plist вашего проекта:

    Key: Main storyboard file base name
    Value: Storyboard
    

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

  2. Удалите содержимое application:didFinishLaunchingWithOptions:, за исключением return YES;:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        return YES;
    }
    
9 голосов
/ 26 октября 2011

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

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

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

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

...