
我试过这个:
overrIDe func prepareForSegue(segue: UIStoryboardSegue,sender: AnyObject?) { if let IDentifIEr = segue.IDentifIEr { switch IDentifIEr { case "JumpToThirdVCSegue": if let secondvc = segue.destinationVIEwController as? SecondVIEwController { secondvc.performSegueWithIDentifIEr("ThirdVCSegue",sender: self) } default: break } }} 但我不能让它工作.当VIEw Controller尚未打开时,是否可能执行segue?
跳过视图控制器或在导航堆栈中添加视图控制器的最佳方法是什么?我希望这可以帮助你了解我正在做的事情:
解决方法 这样的事情应该有效:self.navigationController?.pushVIEwController(vIEwController2,animated: true) self.navigationController?.pushVIEwController(vIEwController3,animated: true)
编辑:
如果您希望推送第二个视图控制器,而不会被用户注意到,则在按下第三个视图控制器之后,您需要将其添加到导航控制器.这可以通过实现UINavigationControllerDelegate来实现.您可以将第二个视图控制器存储在变量中,并使用委托方法将其插入到导航控制器层次结构中.您的主视图控制器将如下所示:
class MyVIEwController: UIVIEwController,UINavigationControllerDelegate { var vIEwControllerToInsertBelow : UIVIEwController? overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() self.navigationController?.delegate = self } func pushTwoVIEwControllers() { if let vIEwController2 = self.storyboard?.instantiateVIEwControllerWithIDentifIEr("ID1"),let vIEwController3 = self.storyboard?.instantiateVIEwControllerWithIDentifIEr("ID2") { //change this to your IDentifIErs self.vIEwControllerToInsertBelow = vIEwController2 self.navigationController?.pushVIEwController(vIEwController3,animated: true) } } //MARK: - UINavigationControllerDelegate func navigationController(navigationController: UINavigationController,dIDShowVIEwController vIEwController: UIVIEwController,animated: Bool) { if let vc = vIEwControllerToInsertBelow { vIEwControllerToInsertBelow = nil let index = navigationController.vIEwControllers.indexOf(vIEwController)! navigationController.vIEwControllers.insert(vc,atIndex: index) } }} 总结 以上是内存溢出为你收集整理的ios – 在导航堆栈中跳过/添加视图控制器全部内容,希望文章能够帮你解决ios – 在导航堆栈中跳过/添加视图控制器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)