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;
.