【发布时间】:2012-11-01 07:27:54
【问题描述】:
我熟悉使用 (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 检查我是否在 iPad 上。 但是,这仅适用于 通用 应用程序。 我想知道是否有办法知道我在 iPad 上运行 iPhone 应用程序。
谢谢!
【问题讨论】:
我熟悉使用 (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 检查我是否在 iPad 上。 但是,这仅适用于 通用 应用程序。 我想知道是否有办法知道我在 iPad 上运行 iPhone 应用程序。
谢谢!
【问题讨论】:
你可以使用[[UIDevice currentDevice] model]。
【讨论】:
我认为即使那样它也会给出正确的设备指示..
由于UIDevice 在整个设备中使用共享类,它应该只为 iPad 提供任何类型的应用程序..
你试过了吗?
按照苹果的说法,UIDevice类中定义的枚举是这样的
typedef NS_ENUM(NSInteger, UIUserInterfaceIdiom) {
#if __IPHONE_3_2 <= __IPHONE_OS_VERSION_MAX_ALLOWED
UIUserInterfaceIdiomPhone, // iPhone and iPod touch style UI
UIUserInterfaceIdiomPad, // iPad style UI
#endif
};
在这里你可以看到它枚举只是给出了它正在使用的 UI 样式,因为它是运行在 iPhone 样式 UI 中的 iPhone 应用程序,它给出了 UIUserInterfaceIdiomPhone
而且名称本身也表示UserInterfaceIdiom 这意味着它与 UI 屏幕尺寸有关。
你可以使用
[[UIDevice currentDevice] model];
它给出了确切的设备型号,在这里您可以检查字符串“iPad”的范围以识别设备。
【讨论】: