我正在深入iOS开发,我创建了一个通用应用程序,变成了一个仅限iPhone的应用程序。当它在iPad上运行时,它只会加载一个白色屏幕,因为还没有写入iPad代码。我想要的是它在iPad上以“iPhone”模式运行,如果它以某种方式最终在iPad上运行。我将“目标设备系列”属性设置为“iPhone”,这样可以防止它作为iPad应用程序在App Store中显示,但如果有人同时拥有iPad和iPhone,那么应用程序最终可能会同步在iPad上,它只会加载白色屏幕,因为它会尝试在iPad模式下运行应用程序,它没有任何支持的代码。在这种情况下,我更喜欢它实际上在iPad上运行,但在iPhone模式下。
我的问题是......
答案 0 :(得分:13)
答案 1 :(得分:9)
我假设您真正想要的是删除“通用”功能,并将其设为iPhone应用程序。
在Xcode中,转到Project =>编辑项目设置=>建立。
搜索通用或“目标设备系列”。
选择iPhone。
再见iPad。
答案 2 :(得分:2)
当iPad运行通用应用程序时,如何知道在“iPhone模式”下运行它还是执行iPad特定代码?
iPad会查找Targeted Device Family
,如果iPad不存在,那么它就知道它必须在iPhone模式下运行应用程序。
在通用应用中,它如何知道哪些代码是iPhone以及哪些代码是iPad?
当您为应用编写代码时,如果每台设备需要执行特定操作,则必须指定要定位的设备。 (请参阅下面的代码示例)
如何阻止iPad尝试运行iPad代码,而是运行iPhone代码?
不要在Targeted Device Family
中支持iPad。其次,在您的代码中,不要指定特定代码需要特定设备,例如:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
/* run something specific for the iPad */
}
else
{
/* run something specific for the iPhone */
}
答案 3 :(得分:1)
如果您构建通用应用,它将使用您的iPad代码。无法在“iPhone模式”下运行通用应用程序。 Apple将检查您是否遵循了iPad设计规范。
在通用应用中,有两个app-delegates:AppDelegate_iPhone.h和AppDelegate_iPad.h
您可以在AppDelegate_iPad中添加iPhone代码,但Apple不会高兴。
答案 4 :(得分:1)
您不应将此添加到Info.plist文件中。而是根据Apple的suggestion将其添加到您的构建设置中。具体来说,使用TARGETED_DEVICE_FAMILY构建设置。
如果您使用的是故事板,您还需要从Info.plist中删除UIMainStoryboardFile~ipad密钥,因为无论您的TARGETED_DEVICE_FAMILY设置如何,都会使用它。
祝你好运!答案 5 :(得分:0)
我认为info.plist文件中有一个条目,用于说明要加载哪个主窗口的每个设备。 也许一个快速而肮脏的解决方案是将MainWindow-iPhone和MainWindow-iPad设置到同一个-iPhone-主窗口。
答案 6 :(得分:0)
另一种方法(使用代码)是:
在App的AppDelegate中(如果您的应用程序是作为通用应用程序创建的),您可以找到以下代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
//iPad...
} else {
//iPhone and iPod Touch...
}
return YES;
}
您可以自定义要显示的视图。
答案 7 :(得分:0)
从Xcode 5
开始,您可以从项目中选择开发目标设备:
从Development Info
中的设备部分,现在您可以选择:
1-iPhone 2- iPad 3- Universal
答案 8 :(得分:0)
我认为你的配置出了问题,因为如果你只定位iPhone的设备代码,应用程序将在iPad上运行,屏幕专为iPhone设计(因此,减少了,有可能x2 )。
[[UIDevice currentDevice] userInterfaceIdiom]
提及上述......