如何在通用应用中区分iPhone和iPad?

use*_*582 9 iphone ipad ios

我想区分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];
    }
Run Code Online (Sandbox Code Playgroud)

如果说错误没有终止#ifdef

这种方法是否正确?

The*_*imp 17

您可以使用已存在的常量:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    // Some code for iPhone
}
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    // Some code for iPad
}
Run Code Online (Sandbox Code Playgroud)

当然你不需要else if声明,你可以使用else但是我只是用它来说明可用的差异常数.

你可以在这里找到更多信息(请参阅上一节UI_USER_INTERFACE_IDIOM).