In my root view, I have a tableview with three rows. When I click either row, it will present a new view and then I can press the back button that is automatically created by my nav controller. My problem arises when I try to click a row that has already been chosen before. I get an EXC BAD ACCESS error message. I think this is all the code that is neccessary:
- (void)dealloc
{
self.rowChosenArray = nil;
self.rootChoicesArray = nil;
self.customImage = nil;
self.rootTableView = nil;
[super dealloc];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.rootChoicesArray = [[[NSMutableArray alloc] initWithObjects:@"",@"See Today's Deals!", @"My Purchased Deals", @"Personal Settings", nil] autorelease];
self.rowChosenArray = [[[NSMutableArray alloc] initWithObjects:@"", nil] autorelease];
DealsViewController *dealsViewController = [[DealsViewController alloc] initWithNibName:@"DealsViewController" bundle:nil];
[self.rowChosenArray addObject:dealsViewController];
[dealsViewController release];
PurchasedDealsViewController *purchasedDealsViewController = [[PurchasedDealsViewController alloc] initWithNibName:@"PurchasedDealsViewController" bundle:nil];
[self.rowChosenArray addObject:purchasedDealsViewController];
[purchasedDealsViewController release];
SettingsViewController *settingsViewController = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
[self.rowChosenArray addObject:settingsViewController];
[settingsViewController release];
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UIViewController *targetViewController = [rowChosenArray objectAtIndex: indexPath.row];
[[self navigationController] pushViewController:targetViewController animated:YES];
[targetViewController release];
}
I am still unfamiliar where/when to release/set objects to nil (all four of my objects have the retain property in the header file.
Thank you in advance for the help, let me know if there is anything else you may need.
1 Answer