例如,我有2个故事栏。在第一个故事板中,我有一个带按钮的视图,当你按下按钮时,应该出现第二个故事板。
我该怎么做?
答案 0 :(得分:0)
您可以使用
创建故事板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];
您可能希望更改最后两行以适合您想要的演示样式。