2012-09-21 74 views
0

我使用此代码来适应我的故事板根据设备(iPhone 5或更少):iPhone 5的屏幕适应

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iphone5 storyboard" bundle:[NSBundle mainBundle]]; 

if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){ 
    if(UIScreenOverscanCompensationScale==1136/640){ 
     //move to your iphone5 storyboard 
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iphone5 storyboard" bundle:[NSBundle mainBundle]]; 
    } 
    else{ 
     //move to your iphone4s storyboard 
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]]; 
    }} 

的代码不能使用,即使我只是工作的地方

...它仍然加载iPhone正常。

我把它放在:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 

在应用程序委托。这是正确的吗??在应用设置中,我选择故事情节

+1

目标上的摘要页的故事板可能设置为MainStoryboard_iPhone –

回答

0

我设法解决它通过这种方式:

if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){ 
    if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 568.0){ 
     //move to your iphone5 storyboard 
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iphone5 storyboard" bundle:[NSBundle mainBundle]]; 
     UIViewController *vc =[storyboard instantiateInitialViewController]; 

     // Set root view controller and make windows visible 
     self.window.rootViewController = vc; 
     [self.window makeKeyAndVisible]; 
    } 
    else{ 
     //move to your iphone4s storyboard 
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]]; 
     UIViewController *vc =[storyboard instantiateInitialViewController]; 

     // Set root view controller and make windows visible 
     self.window.rootViewController = vc; 
     [self.window makeKeyAndVisible]; 
    }} 
+0

我在哪里放这个代码?的appDelegate? –

0

原来iphone的问题是:

UIScreenOverscanCompensationScale==1136/640 

永远不会为真。

检查UIScreenOverscanCompensationScale正在做什么并返回一个BOOL。

+0

肯定的,但代码不叫在所有 – Alessandro

0

是否MainStoryboard仍在目标摘要下指定?我相信这将是应用程序首先看的地方。

+0

好了,我已经决定在storyboard下的故事板=>主要故事板。因为我必须决定一个故事板。 – Alessandro