Концепция универсальных приложений для iPhone и iPad - PullRequest
2 голосов
/ 21 мая 2011

Я новичок в универсальных приложениях, поэтому, пожалуйста, помогите мне и дайте мне знать, если это можно сделать, я создаю универсальное приложение и для этого я написал код и сделал настройки в каждом из моих контроллеров представленияв группе iPhone и iPad и во время выполнения я идентифицирую устройство, будь то его iphone или ipad, я использую следующий метод

 if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
        myiPad_View *ipadObj = [[myiPad_View alloc]init];
        [self.window addSubview:ipadObj.view];

    }
    else
    {
        myiPhoneView *obj = [[myiPhoneView alloc]init];
        [self.window addSubview:obj.view];
    }

Теперь запрос мой босс съедает мою голову за это, он говорит мнечто мы можем написать только один класс, и во время выполнения, когда приложение будет запущено либо на iphone, либо на устройстве ipad, либо на симуляторе, контроллер представления будет корректировать кадры соответственно, я сделал это с помощью вышеуказанного метода, но он говорит, что если вы делаете этотогда код будет увеличиваться, и вам придется испытывать сильную головную боль, так что на самом деле он прав, но не нашел другого альтернативного решения, поэтому, прежде чем сказать, что это невозможно сделать, я подумал о том, чтобы получить совет специалиста

Ответы [ 3 ]

1 голос
/ 21 мая 2011

Ваш метод на самом деле так же, как я определяю устройства в некоторых из моих приложений.

Я недавно написал небольшую статью по этому вопросу.

Вы также можете использовать:

#define IDIOM    UI_USER_INTERFACE_IDIOM()
#define IPAD     UIUserInterfaceIdiomPad
#define IPHONE   UIUserInterfaceIdiomPhone

if ( IDIOM == IPAD ) 
    NSLog(@"Device is iPad.");
else 
    NSLog(@"Device is iPhone or iPod touch.");

или

if ( [[[UIDevice currentDevice] model] isEqualToString:@"iPod touch"] ) 
{
    NSLog(@"Device is an iPod touch");
    /*  same goes for "iPhone", "iPad" etc.  */
}
1 голос
/ 21 мая 2011

У меня есть 3 набора классов:

  • базовые классы: вот куда идет общая логика
  • Классы iPhone: логика для iPhone, включая пользовательский интерфейс, указана здесь
  • классы iPad: специфическая логика iPad, включая пользовательский интерфейс, приведена здесь

Я имею как можно больше в базовых классах, но для времен, когда логика разделена, гораздо проще иметь разные классы. Копаться в коде в поисках исключений было бы больно, ИМО.

Я нашел этот блог полезным (не мой)

0 голосов
/ 21 мая 2011

Это не проблема. Вы должны создать универсальное приложение.

Файл ---> Новый проект ---> windowsapplication

и затем выберите продукт Universal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...