2

嗨,我创建了两个故事板文件,但我不知道如何在它们之间切换。为了在一个故事板中切换,我设置了标识符并使​​用以下代码:

[self performSegueWithIdentifier:@"identifier" sender:self];

此代码在用于切换情节提要时使应用程序崩溃。

请帮忙

4

3 回答 3

10

iOS 9.0 的更新答案

您可以使用情节提要中的情节提要引用将转场的目的地设置为另一个情节提要中的视图控制器。将故事板引用从对象库拖到源故事板。使用目标故事板的名称和该故事板中目标视图控制器的标识符对其进行配置。然后,您可以使用参考作为源故事板中转场的目的地。

有关详细信息,请参阅Storyboard 帮助中的“添加对另一个 Storyboard 的引用”

原始答案

看看UIStoryboard 类参考

您可以使用+[UIStoryboard storyboardWithName:bundle:]. 拥有故事板对象后,您可以通过发送它instantiateInitialViewControllerinstantiateViewControllerWithIdentifier:. 然后你可以用那个视图控制器做任何你想做的事情:以模态方式呈现它,将它推送到导航控制器上,将它添加到标签栏控制器等。

您无法在不同情节提要中的场景之间创建转场,因此您不能使用performSegueWithIdentifier:sender:从一个情节提要中的场景过渡到另一个情节提要中的场景。

于 2012-12-15T09:41:17.843 回答
7

我找到了我自己问题的答案!

这是我的问题的代码:

-(void)viewDidLoad {

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        CGSize result = [[UIScreen mainScreen] bounds].size;

        if(result.height == 480){}
        if(result.height == 568){[self performSelector:@selector(inch4) withObject:nil afterDelay:0];}}}



-(void)inch4 {

    UIStoryboard *storyBoard;

    storyBoard = [UIStoryboard storyboardWithName:@"iPhone4inch" bundle:nil];
    UINavigationController *init4inchViewController = [storyBoard instantiateViewControllerWithIdentifier:@"MainMenu4inch"];
    [self presentModalViewController:init4inchViewController animated:NO];

}

这是切换故事板文件的代码:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"storyboard2" bundle:nil];
[self presentModalViewController:[storyboard instantiateViewControllerWithIdentifier:@"storyboard2initialviewcontroller"] animated:NO];
于 2012-12-15T12:57:59.530 回答
3

很快,这就像下面一样简单。:)

    let sb = UIStoryboard(name: "DestinationStoryboard", bundle: nil)
    let vc = sb.instantiateInitialViewController() {
       present(vc, animated: true, completion: nil)
    }
于 2015-02-17T12:41:13.373 回答