2011-03-28 44 views
1

当我转到基于UIView的应用程序中的下一个视图的支持,我一定要转到的UIView在目标下再查看

secondView * = [[secondView alloc]initWithNibName:@"secondView" bundle:[NSBundle mainBundle]]; 
[UIView beginAnimations:@"ani" context:nil]; 
[UIView setAnimationDuration:0.9]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:NO]; 
[UIView commitAnimations]; 
[self.view addSubview:secondView.view]; 

我的问题是,我无法释放secondView,因为我的目的是去除同样的观点..如果我不能和GOTO第二视图如何以及何时释放secondView对象,并在其中查看..因为我也有来自secondView回的firstView这样的..我写的back代码:

[self.View removefromsuperview]; // means this code is written on second View backbutton then its goto the firstView.. 

我想知道,当我释放secondView对象wh ich我在第一视图创建...我不使用autorealease,因为它非常糟糕...

我也认为一个解决方案,我可以释放firstView dealloc类中的secondView对象..请帮助我..

感谢。

+0

这是一个有点不清楚你问究竟是什么... – GendoIkari 2011-03-28 20:17:27

+0

我问什么时候发布,我在第一个视图创建secondView对象......那好..简单..和什么是最好的可能性.. ! – 2011-03-28 20:28:35

回答

1

您使用initWithNibName.view表明secondView是UIViewController子类的一个实例。如果是这种情况,那么你不应该添加一个UIViewController视图作为另一个UIViewController视图的子视图。这样做是abusing UIViewControllers,并会在您的应用程序中导致意外的行为。

如果您想要管理视图之间的转换,您应该使用Apple提供的容器视图控制器之一来管理多个UIViewController或在单个UIViewController视图的子视图之间进行切换。 无论哪种方式,您的控制器可以通过取父控制器是管理视图之间的过渡被释放。例如,如果您使用的是UINavigationController,它可以在控制器从导航堆栈弹出时释放控制器。如果你写你自己的UIViewController管理多个视图,每个可能有一个非的UIViewController控制器,那么你可以释放的看法,他从父视图控制器的控制器时,不再需要副视点。让父母对象管理他们的孩子。

+0

我不理解你的答案太多.. :( – 2011-03-29 10:12:32