我有一个表视图,只要点击一行就会呈现UIViewController(显示该特定行的详细信息)。从表视图呈现的UIViewController - 弹出时未被销毁
的代码如下:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!detail) {
detail = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
}
PlaceObject *info = [locationInfo objectAtIndex:indexPath.row];
detail.UniqueID = info.UniqueID;
detail.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:detail animated:YES];
self.detail = nil;
[detail release];
}
的问题是,“细节”不(当用户返回到表视图)似乎当从堆栈中弹出被破坏。
我在“细节” UIViewController类的一些IBOutlets和可变的,我在的dealloc释放如下:
- (void)dealloc
{
NSLog(@"Deallocing");
[storedURL release];
[storedNumber release];
[storedLocation release];
[nameLabel release];
[postCode release];
[description release];
[openTime release];
[nearestTube release];
[area release];
[image release];
[name release];
[phoneNumber release];
[scroll release];
[picture release];
[addressOne release];
[cost release];
[super dealloc];
}
任何人能劝为什么“细节”可以不被破坏用户返回时到表格视图?
编辑
好了上面的代码,现在完美的作品。关键似乎是将细节设置为零 - 不知道为什么。
我在[detail release]中添加了方法的末尾,还有dealloc方法中的[detail release]。这个视图现在被处理,但现在在“细节”对象的[super dealloc]中崩溃。为什么会发生这种情况? – GuybrushThreepwood 2011-04-14 20:40:05
更新您的代码上面。 – 2011-04-15 02:09:39