2012-06-11 78 views
0

我有一个应用程序,它利用故事板中的UINavigation控制器来通过两个UITableViews进入细节视图。我想跳过第二个Table View并直接进入Detail View。当用户点击“后退”时,他们应该看到第二个表格视图。UINavigation以显示第三个视图

如果我使用

[self.navigationController pushViewController:secView animated:NO]; 
    [self.navigationController pushViewController:thirdView animated:YES]; 

应用程序的错误了,我得到

nested push animation can result in corrupted navigation bar 
2012-06-11 15:02:23.695 App[3853:f803] Finishing up a navigation transition in an  unexpected state. Navigation Bar subview tree might get corrupted. 

我已经试过

[self navigationController].viewControllers = [NSArray arrayWithObjects: dest, detView, nil]; 
    [[self navigationController] popToViewController:detView animated:YES]; 

这一个效果不错,但我不能回去第一视图。后退按钮不见了。

请大家指点几句。

+0

可我看到更多的代码? – self

+2

检查这个答案:http://stackoverflow.com/questions/5525519/iphone-uinavigation-issue-nested-push-animation-can-result-in-corrupted-naviga – self

回答

1

OK,想着这之后,我想出了一个不同的答案:

NSMutableArray *viewControllers = [self.navigationController.viewControllers mutableCopy]; 
[viewControllers addObject:secView]; 
[viewControllers addObject:thirdView]; 
[self.navigationController setViewControllers:viewControllers animated:YES]; 
[viewControllers release]; 
+0

这只是给相同的错误推动相同的观点控制器实例不止一次不被支持 – anijam

+0

对不起,我的观点有点不同:我没有使用动画。我发布了一个更好的答案。我认为这是对视图控制器堆栈进行复杂更改的预期方式。 –

+0

我最终不得不做的是将segue直接指向第三个视图,然后像上面那样(仅)将第二个视图添加到viewControllers。现在工作。谢谢! – anijam

相关问题