弹出视图控制器、关闭视图控制器和使用展开转场有啥区别?
Posted
技术标签:
【中文标题】弹出视图控制器、关闭视图控制器和使用展开转场有啥区别?【英文标题】:What's the difference between popping a view controller, dismissing a view controller, and using an unwind segue?弹出视图控制器、关闭视图控制器和使用展开转场有什么区别? 【发布时间】:2017-07-26 06:16:46 【问题描述】:我想知道是否有人可以解释何时是使用 segue 的理想时间以及弹出和关闭视图控制器与使用展开 segue 有什么区别?
【问题讨论】:
【参考方案1】:当您呈现一个视图控制器时,您将其替换为前一个。当你推送一个视图控制器时,你会创建一个视图控制器堆栈。
所以 pop 处理一堆视图控制器,它会从堆栈中一个一个地删除视图控制器。
Dismiss 只处理单个视图控制器,它将从内存中删除当前视图控制器。
Unwind segue 可用于通过 push、modal 或 popover segues 导航回来,除此之外,您实际上不仅可以通过一个,而且可以通过一系列 push/modal/popover segues 来展开,例如只需一个展开操作即可在导航层次结构中“返回”多个步骤。
【讨论】:
【参考方案2】:如果您使用segue
之类的东西,那么您必须在情节提要中维护它,其中推送和弹出基于UINavigationController
,无需担心在情节提要中维护segues,您也可以熟悉XIB
PresentViewcontroller
presentViewController 是 UIViewController 的一个方法 用于呈现模态视图控制器的类。
PushViewcontroller
UINavigationController 是 UIViewController 的子类,它 管理一堆视图控制器并添加一个后退按钮等。从 UINavigationController 你可以推送一个新的控制器,然后再弹出 它,所以要回到导航中的前一个和控制器 控制器只会从左到右构建一个序列。
【讨论】:
以上是关于弹出视图控制器、关闭视图控制器和使用展开转场有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章