I am getting this error when I try to preform a segue…
2012-11-14 20:24:54.133 MyApp[26266:c07] nested push animation can result in corrupted navigation bar
2012-11-14 20:24:54.486 MyApp[26266:c07] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
2012-11-14 20:24:54.487 MyApp[26266:c07] Unbalanced calls to begin/end appearance transitions for <SheetDrillDownViewController: 0xa1bb980>.
Here is my setup: Initial view –> next view (UITableView) –> last view (UITable)
Each cell pushes to another view until the last view. I do not have a modal segue, i have a push segue… I have the push segues linked from the cell to the next view, each with different names… I have a perform segue line in my selectedRowAtIndex method. I have tried removing that method, with people saying I am double calling the segue, but then the cell when clicked turns blue, and doesn’t push to anywhere… How can I fix this error? Thanks.
Here is my code:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath) {
[self performSegueWithIdentifier:@"subjectDrillDown" sender:nil];
}
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"Attempting to identify segue...");
// Make sure we're referring to the correct segue
if ([[segue identifier] isEqualToString:@"subjectDrillDown"]) {
NSLog(@"Segue has been identified...");
// Get reference to the destination view controller
SubjectDrillDownViewController *vc = [segue destinationViewController];
NSInteger selectedIndex = [[self.tableView indexPathForSelectedRow] row];
NSMutableDictionary *object = [tableDataSource objectAtIndex:selectedIndex];
NSString *key = [object valueForKey:@"key"];
[vc setSelectedItem:key];
NSLog(@"Switching to %@ detail view...",key);
NSLog(@"Passing dictionary to %@ view... (Source below)\n\n %@",key,[NSString stringWithFormat:@"%@", [tableDataSource objectAtIndex:selectedIndex]]);
[vc setDetailDataSourceDict:[tableDataSource objectAtIndex:selectedIndex]];
}
else {
NSLog(@"ERROR, DOUBLE CHECK SEGUE'S NAME!");
}
}
I have seen all of the other Stack Overflow questions, but most of the correct answers don’t work for me…
EDIT:
The next view is able to load, but when I click the back button, there are suddenly two more views…
UPDATE:

I will try to post the number of times Attempting to identify segue… NSLogs, but my compiler suddenly won’t run 🙁
You surely don’t need to perform segue in
didSelectRowAtIndexPath, if you have already configured it like cell -> next view.But, removing the call from there doesn’t work for you then you can try the segue from view controller (ctrl+drag from view area) to next view and keep the segue call in
didSelectRowAtIndexPathI always use one of the following methods
Method 1:
Segue from
UITableViewCelltoNext View ControllerMethod 2:
Segue from
Main View ControllertoNext View ControllerThe error you are getting is because you have segue and you perform the segue manually when selected – hence, it is resulting in nested push animation
Make sure the name of the segue is correct and you are using ONLY one of the above methods