2

我正在执行这样的segue;

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

但是行为是它总是会“加载”新视图,而不是在已经加载的情况下显示现有视图。

我的问题是,加载视图后如何将视图保存在内存中,以便将来的 segue 调用将简单地“显示”现有视图?

谢谢

编辑:

这是我的用户界面设计。它本质上是一个自定义的侧标签栏视图控制器,带有一个 UIView(大灰色块),所有子视图都放置在其中。

4

1 回答 1

1

简短的回答是 iOS 不太适合这种情况,但您也许可以这样做。这取决于。

问题是该视图的控制器如何在视图控制器层次结构中表示。标准选项是pushViewController(a push segue) 或presentViewController(a modal segue)。您也许可以利用视图控制器包含的优势进行自定义 segue(请参阅WWDC 2011 session 102),但如果您想要这样做,我会感到惊讶。通常,当您听到人们谈论创建新视图的挫败感时,是因为他们想要返回某个主视图,但却忽略了popToRootViewController,而是转而回到了那个根场景。

一个可能出现的完全理论(并且可能不切实际)的答案是使用单例并做一些轻微的手来转换视图,但是在观看 WWDC 2011 session 102 on view controller contains 之后,他们痛斥了保持视图层次结构的重要性与视图控制器层次结构同步,所以我认为这没有意义。

如果我了解您想要的用户界面,我可能会提出更有意义的建议。对于 99% 的应用程序,它们围绕着推送/弹出视图、呈现/关闭模式视图或使用某些容器(例如标签栏容器或某些自定义容器)在同级视图之间跳转。您的用户界面流程是什么?

于 2012-06-27T21:13:35.920 回答