ChatGPT解决这个技术问题 Extra ChatGPT

所有选择赛格之间有什么区别?

节目

查看详细

现在模态

弹出框演示

风俗

https://i.stack.imgur.com/RCZ2g.png

它们之间有什么区别?我找不到任何关于它的文档。以前我在 Google 搜索中找到了一些,但现在没有了:https://developer.apple.com/library/ios/recipes/xcode_help-interface_builder/articles-storyboard/StoryboardSegue.html


J
Jordan H

这是对 segues 的快速总结和每种类型的示例。

Show - 将目标视图控制器推送到导航堆栈上,从右向左滑动,提供返回按钮 - 如果未嵌入导航控制器,它将以模态方式呈现 示例:在设置中导航,例如点击 General > About

显示详细信息 - 用于拆分视图控制器,在多列界面中替换辅助视图控制器,或者如果折叠到一列,它将推送到导航控制器示例:在消息中,点击对话将显示对话详细信息- 在两列布局中替换右侧的视图控制器,或在单列布局中推送对话

以模态方式呈现 - 以由模态呈现和过渡样式定义的各种方式在当前视图控制器之上呈现视图控制器 - 最常用于在从底部向上动画的工作表中呈现视图控制器示例:在设置

弹出框演示 - 在 iPad 上运行时,目的地出现在弹出框中,点击外面的任何地方都会关闭它 - iPhone 也支持弹出框,但默认情况下它将以模态方式呈现视图控制器示例:点击日历中的 + 按钮

自定义 - 您可以实现自己的自定义 segue 并控制其行为

嵌入 - 您可以将视图控制器嵌入到另一个视图控制器中,例如导航、标签栏和拆分视图控制器以及自定义容器

Unwind - 您可以使用 unwind segue 导航回之前的视图控制器,即使有许多屏幕被推/呈现在顶部,所有这些屏幕都将被关闭

不推荐使用的 segues 本质上是上述那些的非自适应等价物。这些 segue 类型在 iOS 8 中已被弃用:Push、Modal、Popover、Replace。

有关更多信息,您可以阅读 Using Segues documentation,其中还解释了 segue 的类型以及如何在 Storyboard 中使用它们。另请查看 WWDC 2014 的 Session 216 Building Adaptive Apps with UIKit。他们讨论了如何使用这些新的 Adaptive Segues 构建自适应应用程序,并且他们构建了一个利用这些 segues 的演示项目。


你能定义 Push 和 Show segues 之间的区别吗?
@Gautham Push 是 Show 已取代的非自适应且已弃用的序列。
谢谢@乔伊。我理解了。我还有一个问题要问你。我可以看到 Show 在 Size 类的上下文中是自适应的。你认为我在这里遗漏了什么吗?
@Gautham对不起,我不明白问题是什么。是的,显示是自适应的,而推送不是。
@Joey 作为 ios 开发的新手,我想说谢谢你说清楚。 1).但是show/modal segue有什么区别?我的意思是,如果您将自己的自定义后退按钮添加到显示为模态的 VC。 2.) 如果我想重置导航堆栈,我应该使用什么类型的 segue?例如。用户单击帐户,然后被带到他们在应用程序中的帐户页面。然后帐户页面应该显示一个汉堡图标/菜单,而不是指向上一个 VC 的后退箭头?
A
Ambroise Collon

为了清楚起见,我想用这些 gif 来说明上面 @Joey 的回答:

节目

https://i.stack.imgur.com/xPQju.gif

查看详细

https://i.stack.imgur.com/glwNy.gif

现在模态

https://i.stack.imgur.com/qgfJu.gif

呈现为弹出框

https://i.stack.imgur.com/d5I3x.gif


这是一种极好的视觉表现,但有一个更正:Show Detail segue 的作用类似于 iPhone 上的模态 segue,而不是此处所示的“显示”segue 行为。
优秀的答案。谢谢!
P
Pang

该文档似乎已移至此处:https://help.apple.com/xcode/mac/8.0/#/dev564169bb1

无法在此处复制图标,但这里是描述:

显示:根据屏幕的内容在细节或主区域中显示内容。如果应用程序正在显示主视图和详细视图,则会将内容推送到详细信息区域。如果应用程序仅显示主视图或详细信息,则将内容推送到当前视图控制器堆栈的顶部。显示细节:在细节区域展示内容。如果应用程序正在显示主视图和详细视图,则新内容将替换当前详细信息。如果应用程序仅显示主视图或详细信息,则内容将替换当前视图控制器堆栈的顶部。以模态方式呈现:以模态方式呈现内容。呈现为弹出框:将内容呈现为锚定到现有视图的弹出框。自定义:使用自定义转场创建自己的行为。


j
jreft56

对于那些喜欢更多实践学习的人,在dock中选择segue,打开属性检查器并在不同类型的segue之间切换(下拉“Kind”)。这将显示每个选项的特定选项:例如,您可以看到“模态呈现”允许您选择转换类型等。