控制segue目标后退按钮导航栏

时间:2012-04-18 11:15:41

标签: objective-c ios

我在导航栏中嵌入了4个视图:

VC1 - > VC2 - > VC3 - > VC4

我需要从VC3的Back按钮被segued到VC1而不是VC2。我已经搜索过实施这个选项,但我没有成功。有可能吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

如果您希望它保持正常外观,则无法更改后退按钮的行为,但如果可以的话,您可以采用脏修复(我不熟悉更好的方法)更好地组织您的应用程序。它涉及直接编辑导航堆栈并从中删除您不需要的视图控制器。

这不是推荐的处理方式,但它可以完成任务:

NSMutableArray *myNavigationStack = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
[myNAvigationStack removeObjectAtIndex:<yourViewControllerExtraIndex>];
self.navigationController.viewControllers = navigationStack;

确保获得正确的索引(0是你的rootViewController),并正确处理你的内存。

解决此问题的最佳方法可能是设计应用程序的体系结构以完全避免这种行为。