在故事板中循环加载 UIViewControllers

Loop loading UIViewControllers in storyboards

我正在使用 storyboard,我想知道是否可以使用 UINavigationController 从 A->B->A->B 等导航。 UIViewControllers 是相同的,但每个加载的信息不同。

我尝试使用 segues,但问题是加载到 classes 中的信息没有保存。因此,当我执行 A->B->A 并返回到根目录时,根目录的信息是加载到 2º A 中的信息。因为我使用的是 storyboards,所以我不创建UIViewControllers 我认为这是问题所在,我只在 prepareForSegue 中使用 [segue destinationViewController]。我认为一个解决方案是停止使用 storyboards 并使用 Xibs,因为这样我会在每次加载它们时为每个 class 创建一个实例,这将解决我的问题。

我只是想知道是否有办法使用 storyboard 来执行此操作,因为更改为 Xibs 需要大量工作。有什么建议吗?

我以前从未尝试过 A -> B -> A -> B。但我已经尝试执行 A -> A -> A,但这行不通。 Storyboards 的一个局限性是你不能继续到同一个 VC.

的另一个实例

然而,您可以做的非常简单 - 无需编写用于在故事板中触发 segue 的按钮,而是将其连接到一个方法并手动将新视图控制器推送到导航堆栈。

- (IBAction)buttonTapped:(id)sender {
   UIViewController *viewControllerA = [self.storyboard instantiateViewControllerWithIdentifier:@"viewControllerAIdentifier"];
   [self.navigationController pushViewController:viewControllerA];
}

请注意,此处不会调用 "prepareForSegue",因此您必须根据需要配置新的 VC 实例。