我有3个视图控制器,每个控制器有2个按钮。
第一个观点:
第二种观点:
第三种观点:
问题在于"返回"第三个视图控制器的按钮:
self.navigationController?.popViewControllerAnimated(true)
所以当我来自第二个视图时,没有问题,我回到第二个视图,但是当我从第一个视图来到并按下后退按钮时,应用程序返回到第一个视图控制器,我想要导航到第二个视图。
按下"结束"有没有办法推动2个视图控制器?第一个视图控制器中的按钮,所以当我按下第三个视图控制器中的后退按钮时,它会返回第二个?
谢谢!
答案 0 :(得分:2)
您可以多次执行navigationController.pushViewController(viewControllerN, animated: false)
来推送多个视图控制器,并仅为最后一个设置animated
。
答案 1 :(得分:1)
您可以按照以下方式推送两个视图控制器。确保动画:false所以用户无法识别有推两个视图控制器。
let ObjVC1 = UIStoryboard(name: "MainStoryboard", bundle: NSBundle.mainBundle()).instantiateViewControllerWithIdentifier("StoryBoardID") as! Profile
self.navigationController?.pushViewController(ObjVC1, animated: false)
let ObjVC2 = UIStoryboard(name: "MainStoryboard", bundle: NSBundle.mainBundle()).instantiateViewControllerWithIdentifier("StoryBoardID") as! Profile
self.navigationController?.pushViewController(ObjVC2, animated: true)
答案 2 :(得分:0)
很简单,您可以通过实例化故事板推送多个控制器,如另一个答案所述。
另一种方式是(在客观c中 - 快速转换它),
NSMutableArray *controllers = [self.navigationController.viewControllers mutableCopy];
[controllers addObject:secondVc];
[controllers addObject:thirdVC];
[self.navigationController setViewControllers:controllers animated:YES];
通过调用self.navigationController.viewControllers
,我们获得了一系列导航堆栈。我们可以在这个数组和final中添加或删除对象; y可以通过[self.navigationController setViewControllers:controllers animated:YES];
通过这种方式,您可以管理您的视图层次结构,就像您想要推送三个视图控制器然后您可以轻松地执行,或者如果您想首先推送第一个和第三个,然后将此对象同样添加到数组中,如果您删除特定视图然后从数组中删除该对象。
根据您的需要,我认为这种方法更合适。
希望这会有所帮助:)