IOS:presentmodalviewcontroller发布

时间:2012-01-20 16:25:07

标签: ios dealloc presentmodalviewcontroller

我使用此代码打开一个viewcontroller

self.secondViewController = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
[self presentModalViewController:self.secondViewController animated:YES];

[self.secondViewController release];

但如果我在第二次调用此代码时使用[self.secondViewController release];因为

而崩溃
[FirstViewController performSelector:withObject:withObject:]: message sent to deallocated instance 0x18a890

如果我不使用它,它一切都好,但在这种情况下什么时候能解除我的secondviewcontroller? 你能救我吗?

1 个答案:

答案 0 :(得分:0)

从您的代码(self.secondViewController),我的理解是您已将secondViewController声明为.h文件中的变量,并{。1}}将其添加到.m文件中。 如果这是对的,我宁愿做以下事情

@synthesize

在我的if (self.secondViewController == nil) self.secondViewController = [[SecondViewController alloc] initWithNib:@"SecondViewController" bundle:nil]; [self presentModalViewController:self.secondViewController animated:YES]; 方法中,我会添加- (void)dealloc,在[self.secondViewController release];我会添加- (void)viewDidUnload

以上代码假设您使用ARC 。 如果您使用ARC,我会按如下方式修改我的代码:

[self setSecondViewController:nil];