循环加载故事板中的UIViewControllers

时间:2015-01-13 16:21:58

标签: ios storyboard xib uistoryboardsegue nib

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

我尝试使用segues,但问题是加载到类中的信息未保存。所以,当我做A-> B-> A并且我回到根时,root的信息是在2ºA中加载的信息。因为我正在使用storyboards我不创建实例UIViewControllers我认为这是问题所在,我只在[segue destinationViewController]中使用prepareForSegue。我认为一个解决方案是停止使用storyboards并使用Xibs,因为这样我每次加载时都会创建每个类的实例,这将解决我的问题。

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

1 个答案:

答案 0 :(得分:0)

我从未尝试过A - > B - > A - > B之前。但我试过做A - > A - > A,这不起作用。 Storyboard的一个限制是你不能转到同一个VC的另一个实例。

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

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

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