2012-06-27 22 views
2

我正在执行像这样的segue;Segue总是加载视图的新实例

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

但行为是,它将始终“加载”新的视图,而不是显示现有的视图,如果它已经加载。

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

感谢

编辑:

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

回答

1

简短的回答是,iOS的是不是非常适合于,但你也许可以这样做。这取决于。

问题是该视图的控制器在视图控制器层次结构中如何表示。标准选项是pushViewController(推推动)或presentViewController(模态继续)。您可能可以使用视图控制器遏制(请参阅WWDC 2011 session 102)进行自定义搜索,但如果这是您想要追求的内容,我会很惊讶。通常当你听到人们谈论创建新视图的沮丧时,他们是想回到一些主视图的结果,但忽略了popToRootViewController,而是让一个segue回到那个根视图。

可能出现的一个完全理论上的(也许是不切实际的)答案是使用一个singleton并做一些轻微的手来转换视图,但是在观看WWDC 2011会议102上的视图控制器遏制之后,保持视图层次结构与视图层次结构同步,所以我不认为这是有道理的。

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

+0

谢谢!看到这个截图:http://cl.ly/2M0h2s2D0r1N1y403z3w - 我基本上有一个自定义的边栏,我的所有视图都通过一个自定义的UIView(中间的灰色块)显示出来 – Dave

+0

然后我把它拿回来。这看起来像一个完美的视图控制器遏制练习。我不知道它是否有帮助,但我发布了一个容器视图控制器的示例(它使用分段控件在子视图控制器之间跳转,但我认为您会看到它与您之间的明显相似之处试图做。请参阅http://stackoverflow.com/questions/11171404/objective-c-flip-between-views-with-one-viewcontroller-or-more/11183442#11183442 – Rob

相关问题