当popViewControllerAnimated:YES被执行时,应用程序与僵尸崩溃
这是我第一次发布,我被困在肯定是一个简单的问题。我正在使用一个框架,导致雪落在用户选择的UIImage上。下面是创建snowfalling类的实例代码:当popViewControllerAnimated:YES被执行时,应用程序与僵尸崩溃
- (void)viewDidAppear:(BOOL)animated
{
// Animate
SnowFalling *snowfalling = [[SnowFalling alloc]
initWithView:self.view];
snowfalling.hidden = NO;
snowfalling.numbersOfFlake = 175;
[snowfalling startAnimating];
}
在这之后,我想用一个自定义后退按钮弹出回到先前的观点:
// Custom back button on toolbar.
- (IBAction)backButton:(UIBarButtonItem *)sender {
[[self navigationController] popViewControllerAnimated:YES];
}
这正常接受当我打返回按钮,与僵尸应用程序崩溃,说:“[UIView的帧]消息发送到解除分配对象”
如果我把:
[snowfalling stopanimating];
在降雪的情况下,比当前视图控制器刚刚将雪冻结在屏幕上。但它会让我弹出到前一个控制器没有问题。
我的问题是,当后按钮(popViewControllerAnimated:YES)被击中时,我该如何停止动画?
-
在你的控制器类创建一个属性来保存snowfalling的价值:
@property(nonatomic,retain) SnowFalling *snowfalling; // in @interface @synthesize snowfalling; // in @implementation
在你viewDidAppear:新创建的SnowFalling分配给该属性,而不是局部变量。
-
请记住在将属性分配给[发布] SnowFalling之后。整个方法应该是这样的:
- (void)viewDidAppear:(BOOL)animated { // Animate self.snowfalling = [[SnowFalling alloc] initWithView:self.view]; [self.snowfalling release]; self.snowfalling.hidden = NO; self.snowfalling.numbersOfFlake = 175; [self.snowfalling startAnimating]; }
-
在[返回按钮:]调用popViewControllerAnimated之前调用
[self.snowfalling stopanimating]; self.snowfalling = nil;
。更好的是,将这两行放置在[viewWillDisappear:]中,这样他们将总是被调用。
我正在使用弧。如何确保在使用arc时释放它? – user1840632
这很好。非常感谢。 – user1840632
可以stopAnimating
在viewWillDisappear
记得设置snowfalling自动释放
我正在使用弧。如何确保在使用arc时释放它? – user1840632
如果使用弧,它将由系统管理 –
您是否尝试调用你的'stopAnimating'在'viewWillDisappear'? – Rob