我有一個表視圖,只要點擊一行就會呈現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