2

我的根视图控制器 (R) 中有一个按钮,它触发到导航控制器 (N) 的 segue。在导航控制器内部,我可以在其导航堆栈上的所有视图控制器(N.0、N.1、N.2...)之间切换,并且所有这些视图控制器都有一个按钮可以立即跳回根视图控制器 (R)。

我想实现这一点 - 每当点击根视图控制器 (R) 中的按钮时 - 导航控制器 (N) 会再次显示其先前的配置。示例:如果关闭导航控制器之前的最后一个可见视图控制器是(N.1),我希望导航控制器再次显示(N.1)。

目前,每当我触发从根视图控制器 (R) 到导航控制器 (N) 的转场时,总是会显示导航根视图控制器 (N.0)。(iOS 是否会在每次触发 segue 时实例化一个新的导航控制器?还是它仍然是同一个对象?)

如何保存导航控制器的状态并在导航控制器再次出现时恢复它?

(我知道在 iOS 6 中有一个 restoreIdentifier 属性可用于此目的。但是我希望我的应用程序能够很好地支持运行 iOS 5 的设备,并且在 iOS 6 之前必须有某种方法来实现此行为。)

故事板截图

4

1 回答 1

0

segue总是创建目标视图控制器的新实例。大概您使用popToRootViewControllerAnimated: “跳转”到根控制器,这大概会破坏所有弹出的视图控制器,因此没有什么可返回的。如果你想浏览视图控制器的网络,你将无法使用 UINaviationViewController 或 segues。

于 2013-03-14T17:17:27.007 回答