iOS iPhone 5选择正确的故事板

我试图将两个故事板用于我的iOS项目,但我无法让代码切换到相应的故事板。 相反,代码绝对没有。 是否我没有正确设置控制开关的设置? 不属于iPhone 5的设备的主要故事板称为MainStoryboard。 iphone 5适当的布局称为iphone5。 我认为这可能是项目配置设置问题。 (这是在我的appdelegate.m文件中)。

-(void)initializeStoryBoardBasedOnScreenSize { if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) { // The iOS device = iPhone or iPod Touch CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size; if (iOSDeviceScreenSize.height == 480) { // iPhone 3GS, 4, and 4S and iPod Touch 3rd and 4th generation: 3.5 inch screen (diagonally measured) // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone35 UIStoryboard *iPhone35Storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; // Instantiate the initial view controller object from the storyboard UIViewController *initialViewController = [iPhone35Storyboard instantiateInitialViewController]; // Instantiate a UIWindow object and initialize it with the screen size of the iOS device self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Set the initial view controller to be the root view controller of the window object self.window.rootViewController = initialViewController; // Set the window object to be the key window and show it [self.window makeKeyAndVisible]; } if (iOSDeviceScreenSize.height == 568) { // iPhone 5 and iPod Touch 5th generation: 4 inch screen (diagonally measured) // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone4 UIStoryboard *iPhone4Storyboard = [UIStoryboard storyboardWithName:@"iphone5" bundle:nil]; // Instantiate the initial view controller object from the storyboard UIViewController *initialViewController = [iPhone4Storyboard instantiateInitialViewController]; // Instantiate a UIWindow object and initialize it with the screen size of the iOS device self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Set the initial view controller to be the root view controller of the window object self.window.rootViewController = initialViewController; // Set the window object to be the key window and show it [self.window makeKeyAndVisible]; } } else if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) { // The iOS device = iPad UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController; UINavigationController *navigationController = [splitViewController.viewControllers lastObject]; splitViewController.delegate = (id)navigationController.topViewController; } } 

我建议只使用1个故事板来处理iPhone 5和iPhone 3-4S屏幕尺寸。

当您的故事板打开时,底部有一个按钮可以在两种尺寸之间切换 – 您可以实时查看事物的外观。

该按钮位于右下角的“放大%缩小”按钮的左侧,如下所示:

在此处输入图像描述

要处理屏幕大小更改会影响对象框架和位置的方式,您需要为视图中的每个对象设置自动resize属性。 您可以通过选择一个对象来执行此操作,并在右侧的“检查器”面板中,选择“大小”检查器,如下所示:

在此处输入图像描述

您是否在自动调整框中看到了这些红线? 和他们一起玩,看他们将如何影响你的对象。 内部的与尺寸有关(如果宽度或高度拉伸),外部与尺寸有关。

我不确定你的应用程序布局,但根据经验你可能不得不弄乱内部垂直线(高度将如何改变)和底线(你希望它保持在底部附近)。

你越乱越乱,你会看到每个人做的越多。