Ios 当我运行模拟器时,程序不会将设备识别为iPad

Ios 当我运行模拟器时,程序不会将设备识别为iPad,ios,iphone,objective-c,ipad,Ios,Iphone,Objective C,Ipad,当运行我的应用程序的设备是iPad时,我想加载一个不同的viewcontroller,并想在模拟器中进行测试(显然)。我在网上查过如何判断运行该应用程序的设备是否是iPad,但它似乎不起作用。下面的例子 当我在Xcode中将设备设置为iPad并运行它时,以下代码(在我的appdelegate.m文件中)应该在日志中打印“识别为iPad!”,但不会: if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ NSLog(@"rec

当运行我的应用程序的设备是iPad时,我想加载一个不同的viewcontroller,并想在模拟器中进行测试(显然)。我在网上查过如何判断运行该应用程序的设备是否是iPad,但它似乎不起作用。下面的例子

当我在Xcode中将设备设置为iPad并运行它时,以下代码(在我的appdelegate.m文件中)应该在日志中打印“识别为iPad!”,但不会:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
    NSLog(@"recongnized as ipad!");
}
其次,我有一段代码,可以打印正在使用的设备的高度(同样在我的appdelegate.m文件中)


然而,当将设备设置为iPad时,它说高度是480,这是iPhone4的高度,而不是iPad的高度。我做错了什么?我只想在appdelegate.m文件中编写一个if语句,如果设备是iPad,它将启动另一个viewcontroller!谢谢

UI\u USER\u INTERFACE\u IDIOM()==UIUserInterfaceIdiomPad
如果您在iPad上运行仅限iPhone的应用程序,则不会返回
YES
,因此它必须位于通用应用程序中。然而,这是区分iPad和其他产品的推荐方法。如果你的应用程序仅仅是iPhone,那么你就没有理由去检查iPad了

如果您真的希望在不使应用程序通用的情况下实现此功能,可能出于测试目的,您可以使用以下字符串并查看它是否包含
“iPad”


请记住,如果苹果决定更改模型字符串,这种方法可能会失败。因此,如果您决定提交应用程序,我不建议您使用它。

您的应用程序设置为仅适用于iPhone的应用程序、仅适用于iPad的应用程序还是通用应用程序?我认为您需要运行iPad emulator而不是iPhone。@rmady Dude,就是这样!我的目标设备在构建设置下被设置为只有iPhone,我把它切换到iPhone/iPad!非常感谢。堆栈溢出是地球上最好的事情
CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;
NSLog(@"device height is %f", iOSDeviceScreenSize.height);
    NSString *device = [[UIDevice currentDevice] model];