繁体   English   中英

自定义到导航控制器层次结构中特定子视图的序列

[英]Custom segue to specific sub-view in navigation controller hierarchy

我在情节提要中有一个“注册”向导流程,它是一个导航控制器(作为情节提要的入口点),在导航栏中具有普通的“上一步” /“下一个”按钮,然后是4个子步骤场景,它们具有线性链中的“显示/推入”顺序过渡。

通常,我自定义到情节提要的导航控制器的顺序,然后向导从第一步开始,一切都很好。

但是从应用程序的另一个角度来看,我需要模态转到一个子步骤(而不是第一步),并且我不想将整个视图和控制它的类复制/粘贴到一个全新的导航控制器链中,所以我认为我可以直接选择它(并动态调整“后退/下一步”按钮中发生的情况)。

因此,我尝试通过子类化UIStoryboardSegue来为此进行自定义segue,其sceneNamed方法具有以下功能:

返回[storyboard InstantiateViewControllerWithIdentifier:sceneName];

并且它可以正常工作,但是由于我们实例化了子场景的“视图控制器”而不是“导航控制器”,所以我看到了场景,但没有导航栏。

另一方面,如果我选择导航控制器,它将照常从第一个链接的场景开始。

有什么方法可以欺骗UIKit进入导航控制器,但可以使其从正常层次结构/流程的下一个场景开始?

是的,我意识到这是骇人听闻的。 还有其他解决方案(例如,在这种情况下,我可以以编程方式添加“后退/下一步”按钮)。 只是好奇。

那么,为什么不挂起这样的话题:

Navigation Controller (sign up) ->
  VC1 -> VC2 -> Terms of Service -> VC3
                       ↑
Login View ->          |                          
     Navigation Controller

这样,您只需使用两种不同的方式即可到达“服务条款”视图控制器,而无需复制它。 您可以使用情节提要参考对象来配置此对象,而不会有一堆纵横交错的箭头破坏情节提要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM