听起来使用单个故事板会更容易,但不会在任何地方创建多个转场。您可以很容易地以编程方式呈现视图控制器:
MyViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];
// set any properties on vc here, if necessary to pass it any data
[self.window.rootViewController presentModalViewController:vc animated:YES];
您可以将所有这些代码放在一个辅助方法中,以便更轻松地重用这些代码,可能是这样的类方法:
@interface MyViewController ...
+ (void)presentNewViewControllerModally;
...
@end
点击完成按钮:
[self.window.rootViewController dismissModalViewControllerAnimated:YES];
请注意,如果您很有可能永远不会看到此模式视图控制器,则可以将该视图控制器放在单独的 xib 文件中而不是故事板中,我认为这可以使事情更高效(故事板仍然更轻量级)。在这种情况下,只需将instantiteViewControllerWithIdentifier
上面的消息替换为:
[[MyViewController alloc] initWithNibName:@"SomeNib" bundle:nil];
...其余的代码是相同的。我已经将这种技术用于“登录”视图控制器,它只是偶尔需要呈现。