我使用此代码打开一个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? 你能救我吗?
答案 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];