Как различить iPhone и iPad в универсальном приложении? - PullRequest
9 голосов
/ 06 января 2012

Я хочу разграничить контроллер для iPhone и iPad.

        #ifdef __IPHONE_NA
            {

            UINavigationBar *ipadNavBar = [[UINavigationBar alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 768.0f, 50.0f)];
            [[self view] addSubview: ipadNavBar];

            UINavigationItem *ipadNavItem = [[UINavigationItem alloc] initWithTitle: @"EMPLOYEE"];
            [ipadNavBar pushNavigationItem:ipadNavItem animated:NO];
            }
    else 
        {

        UINavigationBar *ipadNavBar = [[UINavigationBar alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 360.0f, 45.0f)];
        [[self view] addSubview: ipadNavBar];



UINavigationItem *ipadNavItem = [[UINavigationItem alloc] initWithTitle: @"EMPLOYEE"];
    [ipadNavBar pushNavigationItem:ipadNavItem animated:NO];
    }

, если говорится, что ошибка не определена # ifdef

Правильно ли этот подход?

Ответы [ 3 ]

17 голосов
/ 06 января 2012

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

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    // Some code for iPhone
}
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    // Some code for iPad
}

Естественно, вам не понадобится оператор else if, вы можете просто использовать else, но я просто использую его для иллюстрации доступных констант различий.

Вы можете узнать больше здесь (см. Раздел на UI_USER_INTERFACE_IDIOM).

2 голосов
/ 06 января 2012
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        NSLog(@"iPad Idiom"); 
    else
        NSLog(@"iPhone Idiom");
0 голосов
/ 04 августа 2014
if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone) {

     Console.WriteLine("Phone");

} else if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) {

     Console.WriteLine("Pad");

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