0

我需要在我的应用程序中创建一个模态“流”。它由两个“场景”组成,它们都是 UITableViewController 的子类。

用户将能够在这两个表视图之间推送和弹出。

在任何时候,他们都可以按“完成”(在导航栏中)并关闭整个模态视图以返回到原来的位置。

需要从应用程序中的多个位置访问整个模态流。我真的不想为此创建多个模态序列。

我的问题是,在故事板中创建这个,你会为这个流程创建一个全新的故事板(我不喜欢这个)。

你会创建多个模态序列吗?

我是否应该在同一个故事板文件中创建此流程,但作为标识符可访问的单独实体?

或者是其他东西?

4

1 回答 1

0

听起来使用单个故事板会更容易,但不会在任何地方创建多个转场。您可以很容易地以编程方式呈现视图控制器:

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];

...其余的代码是相同的。我已经将这种技术用于“登录”视图控制器,它只是偶尔需要呈现。

于 2013-07-28T02:43:57.923 回答