我在情节提要中有一个“注册”向导流程,它是一个导航控制器(作为情节提要的入口点),在导航栏中具有普通的“上一步” /“下一个”按钮,然后具有4个子步骤场景,它们具有线性的“显示/推送”选择过渡链。
通常我会自定义到情节提要的导航控制器的位置,然后向导会从第一步开始,一切都很好。
但是从应用程序的另一点来看,我需要模态转到子步骤之一(而不是第一步),并且我不想将整个视图和控制它的类复制/粘贴到一个全新的视图中。导航控制器链,所以我想我可以直接选择它(并动态调整“后退/下一步”按钮中发生的情况)。
所以我尝试子类化UIStoryboardSegue来为此做一个自定义segue,它的sceneNamed方法做这样的事情:
返回[故事板InstantiateViewControllerWithIdentifier:sceneName];
它可以工作,但是由于我们实例化了子场景的“视图控制器”而不是“导航控制器”,所以我看到了场景但是没有导航栏。
另一方面,如果我选择导航控制器,它将照常从第一个链接的场景开始。
有什么方法可以欺骗UIKit进入导航控制器,但可以使其从正常层次结构/流程的下一个场景开始?
是的,我意识到这是骇人听闻的;还有其他解决方案(例如,在这种情况下,我可以以编程方式添加“后退/下一步”按钮)。只是好奇。
答案 0 :(得分:1)
那么为什么不挂起这样的话题:
Navigation Controller (sign up) ->
VC1 -> VC2 -> Terms of Service -> VC3
↑
Login View -> |
Navigation Controller
这样,您只需两种不同的方法即可到达“服务条款”视图控制器,而无需复制它。您可以使用情节提要参考对象进行配置,而无需使情节提要中出现一堆纵横交错的箭头。