我正在执行这样的segue;
[self performSegueWithIdentifier:@"showSecondView" sender:self];
但是行为是它总是“加载”新视图,而不是显示已经加载的现有视图。
我的问题是,一旦我加载了视图,如何在内存中保留视图,以便将来的segue调用只是“显示”现有视图?
由于
编辑:
这是我的用户界面设计。它本质上是一个自定义侧标签栏视图控制器,带有UIView(大灰色块),其中放置了所有子视图。
答案 0 :(得分:1)
简短的回答是iOS并不适合这种情况,但您可能会这样做。这取决于。
问题是该视图的控制器如何在视图控制器层次结构中表示。标准选项是pushViewController
(推送segue)或presentViewController
(模态segue)。你可以做一个利用视图控制器遏制的自定义segue(参见WWDC 2011 session 102),但是如果那是你想要追求的东西我会感到惊讶。通常当你听到人们谈论创建新视图的挫败感是他们想要回到某个主视图的结果,而忽略了popToRootViewController
而是将segue回到了根视图。
可能出现的一个完全理论上(也可能是不切实际的)答案是使用单身人士并做一些轻微的过渡视图,但在观看了WWDC 2011会议102关于视图控制器控制之后,他们认为保持重要性一个人的视图层次结构与视图控制器层次结构同步,所以我认为这没有意义。
如果我理解了您想要的用户界面,我可能会提出更有意义的建议。对于99%的应用程序,它们适用于推送/弹出视图,呈现/解除模态视图,或使用某个容器(例如标签栏容器或某些自定义容器)在兄弟视图之间跳转。您的用户界面流程是什么?