我想在运行我的应用程序的设备是iPad时加载一个不同的viewcontroller,并且想在模拟器中测试它(显然)。我在网上查询了如何判断运行应用程序的设备是否是iPad,但它似乎没有起作用。以下示例。
当我在Xcode中将设备设置为iPad并运行它时,以下代码(在我的appdelegate.m文件中)应打印“识别为ipad!”在日志中,但不是:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
NSLog(@"recongnized as ipad!");
}
其次,我有一些代码可以打印正在使用的设备的高度(再次在我的appdelegate.m文件中)
CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;
NSLog(@"device height is %f", iOSDeviceScreenSize.height);
然而,当将设备设置为iPad时,它表示高度为480,这是iPhone 4的高度,而不是iPad。我究竟做错了什么?我只想在我的appdelegate.m文件中编写一个if语句,如果该设备是iPad,则启动一个不同的viewcontroller!谢谢!
答案 0 :(得分:0)
UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad
不会返回YES
,因此它必须位于通用应用程序中。但是,这是区分iPad和其他产品的推荐方法。如果您的应用仅限iPhone,那么您应该没有充分理由要检查iPad。
如果您真的希望在没有使应用程序具有通用性的情况下工作,可能出于测试目的,您可以使用以下字符串并查看它是否包含"iPad"
:
NSString *device = [[UIDevice currentDevice] model];
请记住,如果Apple决定更改模型字符串,这种方法可能会中断。因此,如果您决定提交应用,我建议不要使用它。