在没有 Segue 的情况下在 UIViewController 之间移动

Moving between UIViewControllers without Segue

我有一个故事板,上面有 8 个 UIViewController(并且还在增加)。我需要能够按需在任何一对之间移动。本质上,我想做的是模仿 UITabBarController 的功能。因为有这么多,我不能只使用 UITabBarController(那会立即解决我的问题),所以我使用带有嵌入式 UITableViewUIPopoverController 来允许用户选择他们的目的地。

当然,我可以在故事板上创建 segues,但是要设置我当前需要的所有 segues,我将不得不为我现在拥有的视图控制器创建 56 个这样的 segues,并且可能随着事情的发展更多。

我的一个想法是创建一个 'hub' 视图控制器,它除了为每个 'real' VC 保留 segues 并成为每个 VC 的代表外什么都不做那些风投。然后,当我想在 VC 之间切换时,我首先关闭视图控制器并将目标的 segue 名称传递回集线器。然后,集线器可以立即执行该 segue,这让我到达了我想要的位置。我认为这可行,但似乎有点老套。

有谁知道有没有更好的方法可以做到这一点?谢谢!

你为什么不给每个人一个故事板标识符,然后用这个标识符抓住你需要的任何人:

UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"identifier"];

然后通过推送或模态呈现这个视图控制器