我想区分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,360.0f,45.0f)]; [[self view] addSubview: ipadNavBar]; UINavigationItem *ipadNavItem = [[UINavigationItem alloc] initWithTitle: @"EMPLOYEE"]; [ipadNavBar pushNavigationItem:ipadNavItem animated:NO]; }
如果说错误未终止#ifdef
这种方法是否正确?
解决方法
您可以利用已经存在的常量:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { // Some code for iPhone } else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { // Some code for iPad }
当然,你不需要else if语句,你可以使用else,但是我只是使用它来说明可用的差异常量.
你可以找到更多的here(看看UI_USER_INTERFACE_IDIOM的部分).