我需要为 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 只允许我为项目设置一个通用界面的主要内容,如果未能解决你的问题,请参考以下文章