我在UINavigationController应用程序上有3个ViewControllers的层次结构。
从VC1开始,从那里你可以加载VC2。在VC2中,您可以加载VC3。
您可以通过按导航栏上的左侧导航按钮向后导航VC。
但设计师希望能够从VC1-> VC3跳转,然后如果按左侧导航栏按钮返回,则会转到vc2。
是否可以使用NAV控制器进行此类导航?
如果用户想要去VC1-VC3,我可以将VC2和VC3都推送到navigationController堆栈,以便正确维护导航。
此外,如果用户想要从VC3-> VC1,我可以弹出VC3,然后将VC2从navigationController堆栈中弹出,以便VC1显示?
答案 0 :(得分:3)
首先 - 告诉你的设计师这种导航让用户感到困惑,他们应该采用更多的可用性和UX类。第二 - 是的,这是可能的 - 最简单的方法是致电
[navigationController setViewControllers:newViewControllers animated:YES];
这将取代整个导航堆栈,因此请确保它包含[VC1,VC2,VC3](以及其他可能发生的其他内容)
答案 1 :(得分:1)
正常的后退按钮将弹出到上一个视图控制器。您可以在V3中创建一个左侧栏按钮,它将使用UINavigationController方法弹出到层次结构中的给定视图控制器(将您的V1实例作为viewController)
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated
答案 2 :(得分:0)
按下后退按钮时,将VC2和VC3同时按到堆栈上以保留导航。要从VC3转到VC1,您可以使用...
[navigationController popToViewController:vc1 animated:YES];
或VC1是根...
[navigationController popToRootViewControllerAnimated:YES];