添加和删​​除视图 - 最佳实践

时间:2010-09-15 10:39:26

标签: iphone objective-c uiviewcontroller uinavigationcontroller

我现在开发了一些使用单视图控制器的应用程序。在应用程序委托中的每个应用程序中,我在“didFinishLaunchingWithOptions”和[window addSubview:view_controller.view]中分配/初始化第一个视图控制器。

现在我的问题是删除和添加辅助视图的最佳做法。

目前,我会执行以下操作:

•在屏幕上我当前的View Controller中,我引用了Application Delegate并调用了一个名为“showSecondViewController”的方法,传递“self”

•然后在“showSecondViewController”方法的Application Delegate中,我删除了从superview传入的“self”和[window addSubview:new_view];新的视图控制器。

然后我会说几个remove / show方法来显示/隐藏所需的每个视图控制器。

这是最佳做法吗?我刚刚与另一位iPhone开发人员谈论使用导航控制器(隐藏顶部栏)和“动画:否”推动并弹出视图控制器而不使用此方法?哪个最好?

我开始考虑这个问题的原因是在观看了斯坦福大学讲座后看到了这张幻灯片:http://screencast.com/t/N2RkZWIzMzkt这让我觉得我所做的事情是不正确的。

请告知。

由于 詹姆斯

1 个答案:

答案 0 :(得分:1)

在我看来,你正在尝试手工做UINavigationController可以为你做什么,所以我会选择那个。

此幻灯片告诉您的是,不要将所有内容都放入您的应用代理中,如big ball of mud。这意味着,创建一个对象来保存和管理您的所有视图,而不依赖于其他任何视图。如果它需要访问其他对象以使用setter或-init方法传递它们,但没有它去应用程序委托(或其他一些中心点)并要求它。这叫做dependency injection