0

我有两个通过 segues 相互连接的视图控制器。当有人按下按钮时,他们会转换到 viewcontroller2。在那个 viewdidload 中,然后我通过使用以下代码启动 segue “backs”,将它们启动回原始视图控制器:

 [self performSegueWithIdentifier: @"backs" sender: self];

但是,它一直拒绝这种简单的转换,说我的视图控制器超出了层次结构?只有两个视图控制器,所以我想知道这怎么可能?

4

1 回答 1

0

viewDidLoad太快了。视图已加载,但尚未放入视图层次结构中。你想等到viewDidAppear。这是视图控制器的视图实际上是完整视图层次结构的一部分的第一个时刻。(即使那样,您也可能不得不使用延迟性能;我不确定。)

关于您所说的另一个问题是,如果您通过 segue 从视图控制器 A 转到视图控制器 B,则无法通过正常的 segue 返回。您必须使用新的“展开”segue 功能,或者手动返回(例如关闭呈现的控制器,弹出推送的控制器)。

于 2012-11-29T23:45:29.790 回答