从一个故事板到另一个

时间:2012-09-07 14:16:26

标签: iphone sdk

例如,我有2个故事栏。在第一个故事板中,我有一个带按钮的视图,当你按下按钮时,应该出现第二个故事板。

我该怎么做?

3 个答案:

答案 0 :(得分:0)

查看the storyboard class

的文档

您可以使用

创建故事板
UIStoryBoard *storyboard = [UIStoryboard storyboardWithName:@"secondStoryboard" bundle:nil];

并从中获取视图控制器,如

UIViewController *initialViewController = [storyboard instantiateInitialViewController];

UIViewController *otherViewcontroller = [storyboard instantiateViewControllerWithIdentifier:@"otherController"];

一旦你有了视图控制器,你就可以将它们推到你的导航控制器上了。

但是,我不知道在同一个视图中使用两个故事板对象会发生什么 - 它可能很好,但你永远不会知道:)

答案 1 :(得分:0)

即使你的问题有点令人困惑,我想我知道你要做什么。

您想要使用两个故事板。 UIStoryboard有一种方法可以检索具有给定名称的任何故事板的实例。首先,在Xcode中为故事板和视图控制器设置一个名称,然后加载它们,然后在任何视图控制器中:

UIStoryboard *anotherStoryboard = [UIStoryBoard storyboardWithName:@"SomeStoryboardName" bundle:nil];

然后,从任何故事板中实例化所需的UIViewController:

UIViewController *anotherViewController = [anotherStoryboard instantiateViewControllerWithIdentifier:@"SomeViewControllerName"];

然后您可以将其推入导航堆栈,例如:

[self.navigationController pushViewController:anotherViewController animated:YES];  

答案 2 :(得分:0)

这里修改为通用的是我在我的应用程序中执行此操作的方式...

UIStoryboard *alternateStoryboard;

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
    alternateStoryboard = [UIStoryboard storyboardWithName:@"Alternate_iPad" bundle:nil];
} else {
    alternateStoryboard = [UIStoryboard storyboardWithName:@"Alternate_iPhone" bundle:nil];
}

AlternateController *altController = [alternateStoryboard instantiateInitialViewController];
[altController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentModalViewController:altController animated:YES];

如果您的应用只是iPhone或iPad,可以缩减为......

UIStoryboard *alternateStoryboard = [UIStoryboard storyboardWithName:@"Alternate" bundle:nil];

AlternateController *altController = [alternateStoryboard instantiateInitialViewController];
[altController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentModalViewController:altController animated:YES];

您可能希望更改最后两行以适合您想要的演示样式。