Выкладка универсальных приложений в XCode 4 - PullRequest
0 голосов
/ 14 ноября 2011

Я пытаюсь выполнить базовые шаги по созданию универсального приложения (iphone / ipad) в Xcode 4. Я не хочу использовать INterface Builder, если это возможно, и я хочу уйти от громоздкости, еслиоператоры:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

Я создаю «оконный проект», чтобы получить универсальный шаблон, предоставляемый Apple.Это дает мне три делегата приложения с iPhone и iPad, имеющими свои собственные XIB, внутри своих определенных папок.

Теперь я хотел бы добавить контроллер представления, поэтому я создаю мастер-элемент «MasterViewController» иподклассовые версии "MasterViewController_iPhone" и "MasterViewController_iPad".Я не создаю XIB с любым из них.(Мне нужно?)

Вот где я запутался.В делегат главного приложения я помещаю код

[self.window makeKeyAndVisible];

. Я не добавляю никакой другой код, позволяющий делегатам субклассового приложения создавать экземпляры своих соответствующих контроллеров представления.Например, в делегате приложения iphone я размещаю:

myVC_iPhone = [[MasterViewController_iPhone alloc] initWithNibName:nil bundle:nil]; 
[self.window addSubview: myVC_iPhone];

Но это дает мне ошибку:

Incompatible pointer types sending 'MasterViewController_iPhone *' to parameter of type 'UIView *'

Я упустил кое-что базовое здесь.Возможно, мои соглашения об именах неверны;возможно, makeKeyAndVisible не должен быть в делегате главного приложения;возможно, мне нужны XIB для каждого контроллера представления.Кто-нибудь может подтолкнуть меня сюда?Спасибо!

Ответы [ 2 ]

0 голосов
/ 14 ноября 2011

Как насчет добавления вашего контроллера вида как rootViewController

self.window.rootViewController = myVC_iPhone;
0 голосов
/ 14 ноября 2011

addSubview: принимает UIView в качестве параметра, а не окружающий его контроллер представления. Вы должны быть в порядке, используя [self.window addSubview: myVC_iPhone.view];.

...