在不同的Storyboard上显示ViewController

时间:2014-09-17 08:35:56

标签: ios objective-c uiviewcontroller uistoryboard

我有3个不同设备屏幕尺寸的3个故事板。当按下3个故事板的按钮时,我想从主ViewController移动到第二个ViewController。这是代码:

在AppDelegate.m中

- (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:@"Main_iPhone" bundle:nil];
        UIViewController *initViewController = [storyBoard instantiateInitialViewController];
        [self.window setRootViewController:initViewController];
    }
    else {
        storyBoard = [UIStoryboard storyboardWithName:@"Main_iPhone4" bundle:nil];
        UIViewController *initViewController = [storyBoard instantiateInitialViewController];
        [self.window setRootViewController:initViewController];
    }
  }

  return YES;
}

移动到第二个ViewController的代码:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone/Main_iPhone4/Main_iPad" bundle: nil];
ArcadeView *svc = [storyboard instantiateViewControllerWithIdentifier:@"arcade"];
self.window.rootViewController = svc;

但是,当我使用上面的代码时。 XCode告诉我

  

"找不到名为的故事板   ' Main_iPhone / Main_iPhone4 / Main_iPad'在捆绑NSBundle。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

因为您没有名称为@" Main_iPhone / Main_iPhone4 / Main_iPad"的故事板。

为了使其按照您想要的方式工作,在每个故事板中做得更好,制作相同的过渡并为它们签署相同的标识符。 对于过渡,请使用:

[self performSegueWithIdentifier:@"ShowMainMenu" sender:self]

但总的来说,我建议你学习更多关于约束的知识。所以它会更容易