Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 复杂情节提要导航_Ios_Objective C_Uinavigationcontroller_Storyboard - Fatal编程技术网

Ios 复杂情节提要导航

Ios 复杂情节提要导航,ios,objective-c,uinavigationcontroller,storyboard,Ios,Objective C,Uinavigationcontroller,Storyboard,我对iOS非常陌生,但已经被放在了一个复杂的应用程序上。我在故事板、片段、视图等上看到的所有教程都非常简单 我已经能够使用segue显示视图并返回,但管理层并不关心segue。在移动一个复杂的应用程序后,用户应该能够跳转到应用程序的另一部分,就像用户返回两次,然后选择另一个视图,然后选择另一个视图一样 我只是不知道如何才能做到这一点。在情节提要编辑器中添加新的直接序列?或者与通过编程创建的自定义segue有关?我需要一些关于方向的提示,比如看什么方法,用谷歌搜索什么或者高级教程等等。提前感谢。通

我对iOS非常陌生,但已经被放在了一个复杂的应用程序上。我在故事板、片段、视图等上看到的所有教程都非常简单

我已经能够使用segue显示视图并返回,但管理层并不关心segue。在移动一个复杂的应用程序后,用户应该能够跳转到应用程序的另一部分,就像用户返回两次,然后选择另一个视图,然后选择另一个视图一样


我只是不知道如何才能做到这一点。在情节提要编辑器中添加新的直接序列?或者与通过编程创建的自定义segue有关?我需要一些关于方向的提示,比如看什么方法,用谷歌搜索什么或者高级教程等等。提前感谢。

通常,导航控制器允许堆栈中的单个视图控制器“弹出”。这对于主细节应用程序和线性工作流非常有效

当一个视图控制器以类似web的方式连接到另一个视图控制器时,事情变得难以管理

如果您希望依靠视图控制器堆栈的自动化管理,但同时返回多个项目,请查看展开顺序:——答案说明得非常清楚

如果你能在圆圈中导航,它会变得更加复杂。基本上,导航控制器会将已经初始化的类的新对象放在堆栈上,以保持其breadcrumb轨迹一直回到根视图控制器

在某些情况下,这是不可取的。您可以使用
UINavigationControllerDelegate
,当满足某些条件时,它会从堆栈中删除项


假设您有4个视图控制器,A--D。可能的连接是:A-B-C-{B,D}-A。从D开始,当您完成后,您希望展开到A。从C开始,您可能希望在B添加一个附加项,但您不希望跟踪所有的B-C-B-C-B-C-C-。。。连接。在这些情况下,更改导航控制器历史记录非常有用,不会破坏“后退”按钮的预期行为。

如果没有GUI的完整细节,很难进行评论,这取决于用户下一步可以/不能去哪里。但是概括起来,没有理由说一个segue不能从一个部分跳到另一个部分,但是你可能必须小心。您可以做一些可能适用的事情,将导航视图控制器的视图控制器堆栈替换为另一个堆栈-这可能适用于您说“跳转到另一个部分”,但没有图表,我不能说,我怀疑您是否会得到任何有用的答案。需要注意的一点是,除了放松,你不应该返回到以前的控制器。这类似于视图A->B->C->D。一旦用户在D,他们需要能够透明地返回到A,然后沿着另一条路径A->X->Y。我们(或管理层)希望用户能够从D跳到Y。我不需要确切的答案,只是一些一般策略的想法,这样我就可以做正确的阅读。谢谢你,这真的很有帮助,我没有遇到过放松阶段,或者至少没有注意到。