0

我遇到了推送和弹出我的 UIViewController 的问题。我有两个 UIViewControllers 说A& B

我写了一个我从喜欢IBAction推动到的,BA

B *bView=[[B alloc] initWithNibName:@"B" bundle:nil];
[UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:0.7];
[self.navigationController pushViewController:bView animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
[UIView commitAnimations];

[bView release]; //Problem is here, If I comment this line, it works fine! else it crashes after my some transitions from A [push] B, B [pop] A.

现在B我写了一个IBAction弹出到A下面的喜欢

[UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:0.7];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
[self.navigationController popViewControllerAnimated:NO];
[UIView commitAnimations];

我也打来[super dealloc]电话B

-(void) dealloc
{
   [super dealloc];
}

如果我不释放bView它不会调用 dealloc,并且可能会产生内存问题。

这个问题是因为我应用了动画吗?

我尝试了所有其他方式,例如autorelease,设置bView=nil;等,但这些对我不起作用!

任何帮助,建议!

4

1 回答 1

1

尝试bView在动画完成块内释放。

您可以使用旧样式+ setAnimationDidStopSelector: ,或者如果您不需要支持 iOS4 之前的设备,您可以使用动画块animateWithDuration:delay:options:animations:completion:

于 2012-06-29T06:15:00.217 回答