我需要为 iPhone 和 iPad 设置单独的主界面,但 Xcode 只允许我为项目设置一个通用界面

Posted

技术标签:

【中文标题】我需要为 iPhone 和 iPad 设置单独的主界面,但 Xcode 只允许我为项目设置一个通用界面【英文标题】:I need to set a separate Main Interface for iPhone and iPad, but Xcode only lets me set one interface for the project when it is universal 【发布时间】:2015-11-25 20:54:55 【问题描述】:

我无法为 iPad 设置特定的主界面,即使我的应用程序是通用的。 Xcode 曾经在 iPhone 和 iPad 上为部署信息提供单独的选项卡,但现在它们是相同的。但是我的游戏在 iPhone 和 iPad 上完全不同,我需要为每个界面设置单独的故事板。

如果您知道解决方案,请提供帮助。

【问题讨论】:

【参考方案1】:

您可以将Deployment Info -> Main Interface 中的值设置为空字符串并在您的AppDelegate 中实现自定义逻辑:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
  // Override point for customization after application launch.

  UIStoryboard *initialStoryboard;
  if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) 
    initialStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
   else 
    initialStoryboard = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:nil];
  

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  self.window.rootViewController = [initialStoryboard instantiateInitialViewController];
  [self.window makeKeyAndVisible];

  return YES;

【讨论】:

【参考方案2】:

您需要为此使用尺寸等级。要选择正确的尺寸等级,请打开故事板文件,然后单击屏幕底部的此图标。

单击 wAny hAny 将允许您更改尺寸等级类型并为不同的设备类型设置特定的约束。你可以阅读更多关于尺寸等级的信息here

【讨论】:

但我不想使用尺寸等级。 抱歉,回复晚了。你有什么理由不想使用尺寸等级吗? 这只是一个主观的东西,我觉得非自动布局工具不那么麻烦。特别是如果我想在 iPad 上做一个与 iPhone 完全不同的界面。如果您对非自动布局工具的外观感到好奇,请看截图:i.imgur.com/r6f7GMB.png

以上是关于我需要为 iPhone 和 iPad 设置单独的主界面,但 Xcode 只允许我为项目设置一个通用界面的主要内容,如果未能解决你的问题,请参考以下文章

我们是不是需要为所有 iPhone/iPad 设备提供单独的故事板?

为 iphone 和 ipad 提交单独的二进制文件

如何在不为 iphone 和 ipad 创建单独的 xib 的情况下为所有 ipad 和 iphone 创建通用 xib?不是故事板

我可以为 iPhone 和 iPad(纵向和横向)使用单独的故事板吗?

用于单独 iPad 和 iPhone 应用程序的 Azure 通知中心配置

我们可以在iTunes商店单独提交iPhone和iPad版应用程序吗?