从一个故事板转换到另一个故事板

时间:2014-09-18 18:42:11

标签: ios xcode uinavigationcontroller uistoryboard uistoryboardsegue

Say Storyboard A有一个导航控制器和5个视图控制器,并包含"注册"应用程序的一部分。在注册过程的最后一步之后,我想转换到Storyboard B,其中包含应用程序的主要部分。我可以这样到达Storyboard B:

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *initialViewController = [mainStoryboard instantiateInitialViewController];

[self.navigationController presentViewController:initialViewController animated:YES completion:^ {

}];

这很有效,但Storyboard A的所有视图控制器都保留在内存中。我也不想将Storyboard B推送到Storyboard A的导航控制器的导航堆栈,因为Storyboard B拥有它自己的自定义导航。

那么处理这种情况的最佳方法是什么?我需要访问Storyboard B,但我需要该应用程序在完成转换后完全忘记Storyboard A.

1 个答案:

答案 0 :(得分:1)

将窗口的根视图控制器重置为故事板B中的初始控制器,这将导致与故事板A关联的整个导航堆栈被取消分配,

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *initialViewController = [mainStoryboard instantiateInitialViewController];
self.view.window.rootViewController = initialViewController;