xcode 4.5 how to pick storyboards at launch

前端 未结 5 1718
灰色年华
灰色年华 2020-11-29 16:49

Trying to make my app work with both iPhone 5 and iPhone 4/4s. I tried the \"AutoLayout\" but does not seem to work for my app also read that it is not supported in iOS 5.

5条回答
  •  清歌不尽
    2020-11-29 17:19

    This is a great question.

    What you need to do is,

    1. Select your current 4/4s storyboard, go to File, duplicate, then give it an iPhone 5 specific name. Make sure that Target and your app name is checked.

    2. Next you have to select the scenes in your storyboard and in the Attributes Inspector change the size to Retina 4 Full Screen. This allows you to rearrange everything for this display.

    3. Finally in application didFinishLaunchingWithOptions paste the following code with the storyboard name you gave for your 4 inch storyboard.

      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
      {
      if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
          UIStoryboard *storyBoard;
      
          CGSize result = [[UIScreen mainScreen] bounds].size;
          CGFloat scale = [UIScreen mainScreen].scale;
          result = CGSizeMake(result.width * scale, result.height * scale);
      
          if(result.height == 1136){
              storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone_5" bundle:nil];
              UIViewController *initViewController = [storyBoard instantiateInitialViewController];
              [self.window setRootViewController:initViewController];
          }
      }
      
      return YES;
      }
      

    If anyone don't get how to do step 1, do as below.

    1. Go to Project directory and copy paste the MainStoryboard.storyboard and rename new storyboard to say MainStoryboard5.storyboard.

    2. Add this new storyboard MainStoryboard5.storyboard in project (in Xcode) by right clicking Project and clicking Add Files to ....

    3. Now we have two storyboards in xcode.

    Tip

    You may have to use 'Product > Clean' for this to work after you have done all the above.

提交回复
热议问题