查看交换技术

时间:2011-05-16 09:42:44

标签: iphone cocoa-touch uiview uiviewcontroller

我想听听开发者关于在iphone上交换视图的最佳方式的意见。

例如,我有一个标签栏,其中一个标签默认为登录视图。当用户登录视图时,更改为登录视图。

我打算只使用一个视图控制器,并在一个xib中隐藏所有内容并根据需要显示内容,但这似乎并不优雅。

其次我正在考虑使用一个viewcontroller并简单地交换xib。我是一个不愿意尝试这个的人,因为我在一篇文章或2中读到它会导致内存泄漏。

最后我考虑使用2个视图控制器和2个单独的xib。我的直觉告诉我这可能是“正确的”解决方案,但到目前为止,我没有以正确的方式搜索任何示例代码。

您能就解决此问题的最佳方法提供建议吗? 有没有我没有列出的技术? 感谢。

1 个答案:

答案 0 :(得分:2)

我会保留视图控制器中显示哪个视图的逻辑。 XIB是视图本身,并且其中不应包含任何对象,这些对象是瞬态的或对于该特定视图始终不可见。

你的第二种方法(交换意见)对我来说似乎是正确的方法,而且在这些情况下我总是这样做。如果你做得对,我不知道任何内存问题(从superview中删除,然后将新视图作为控制器视图的子视图加载)。您可以在加载新XIB之后以及向用户显示之前执行任何自定义初始化。

多视图控制器似乎是多余的,因为理想情况下您需要另一个顶级控制器管理两个视图控制器。