2012-05-03 2 views
0

Я создаю универсальное приложение для Iphone и Ipad. Но мне не нужно иметь такой же класс для Iphone и Ipad. Мне нужно иметь отдельные классы для каждого Iphone и Ipad. Может ли кто-нибудь дать мне идею Как это сделать? Я уже создал свое приложение с помощью Xcode 4. Но когда я создаю новый проект там, он создает один файл класса и Nib для обоих устройств. Мне не нужно иметь это таким образом для моей цели.Как создать универсальное приложение Iphone/Ipad в отдельных классах?

EX: Мне нужен этот вид классов файлов для обоих устройств

IphoneviewController.h 
IPhoneviewController.m 

IPadviewController.h 
IPadviewController.m 

one Xib 

UniversalviewController.xib 

Благодарности и ищет быстрых ответов.

+0

Это не хорошая идея, чтобы иметь общий файл XIb для iPhone/IPad, как оба имеют различные размеры, и это создаст проблемы для вас, чтобы поддерживать дизайн согласован. –

+0

Да, я знаю, но клиент так хочет ... –

+0

Хорошо, что похоже, что вы идете против правил MVC. 2 просмотра контроллеров один вид? конфликт между двумя контроллерами, которые должны контролировать представление? –

ответ

0
BOOL isIPhone = (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad); 

просто судить тогда использовать отдельный класс для отображения другой точки зрения

добавить:

извините, я не используйте XIB | перо, чтобы построить мое приложение, я использовать чистый код но я думаю, что вы не можете использовать один XIB с 2 ViewController

просто создать 2 XIb для каждого ViewController или объединить код в один ViewController как код выше

0

Как насчет делать следующее в вашем applicationDidFinishLaunch:

UIViewController * viewController; 
if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) { 
    viewController = [[IphoneviewController alloc] initWithNib: "UniversalviewController"]; 
} else { 
    viewController = [[IPadviewController alloc] initWithNib: "UniversalviewController"]; 
} 
//now use your VC however it is appropriate for your app, such as... 
self.window.rootViewController = viewController; 
[self.window makeKeyAndVisible]; 

Кстати, в связи с обсуждением MVC, при условии, что вам нужны два разных viewControllers для двух платформ, вы можете общий код, создав общий класс с почти всем в нем, импортировать его каждому, а затем только реализовать или переопределить все, что должно быть конкретным для iPad в конкретной версии ipad.

Вот .h вашего IPadviewController, например ...

#import "viewController_Shared.h" 

@interface IPadviewController : viewController_Shared { 

} 
+0

Как вызвать контроллер вида в AppDelegate? –

+0

См. Пересмотренный код ... – mackworth