I have UITabBarControllerwith 4 UINavigationControllers. I implemented the delegate method didSelectViewControlleras follows:
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if ([viewController isKindOfClass:[UINavigationController class]]) {
[(UINavigationController *)viewController popToRootViewControllerAnimated:NO];
}
}
Failure, when it NavigationControlleris at level 2 after didSelectRowAtIndexPath, pushes a new viewController stack onto the stack.
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
RootViewController *detailViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
detailViewController.title = [self.temp objectAtIndex:indexPath.row];
detailViewController.sort = self.title;
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
}
Of course, the debugger with it turned on NSZombiesdoes not give feedback.
However, if I add the value keep to detailViewController alloc;
RootViewController *detailViewController = [[[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil] retain];
It works, but a memory leak.
Any ideas what is wrong, how to fix what is happening?
Tim h source
share