发布UIViewControllers

时间:2011-08-01 08:47:31

标签: iphone cocoa-touch uiviewcontroller uikit uiwindow

我在我的应用程序中使用了3个UIViewControllers,现在我想知道当我切换到另一个时是否释放它们是个好主意。显然,它是隐藏的,我真的不需要它们,而它们是不可见的... 切换视图,我正在使用这样的东西(uiwindow):

//this is in the first UIViewController
[[[UIApplication sharedApplication] keyWindow] addSubview:secondController.view];
[self.view removeFromSuperview];
//here I release the view controller
[self release];

所以我的问题......这真的值得吗?什么可能是性能问题?

另外,我想问一下是否有人知道为什么这些行按此顺序工作(见下文)。我尝试了另一种方式,我有停止工作的方向问题?任何提示?

//working
[[[UIApplication sharedApplication] keyWindow] addSubview:secondController.view];
[self.view removeFromSuperview];

//not working
[self.view removeFromSuperview];
[[[UIApplication sharedApplication] keyWindow] addSubview:secondController.view];

由于

劳尔

1 个答案:

答案 0 :(得分:1)

  

......这真的值得吗?什么可能是性能问题?

一旦将视图控制器添加为另一个视图(superView)的子视图,就可以很好地释放视图控制器,在这种情况下,superView会保留子视图。 [[UIApplication sharedApplication] keyWindow] secondController.view 的superView,它保留了 secondController.view 。因此,这是一种正确的方法,它不会导致任何性能问题。