首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >pushViewController与showViewController的区别

pushViewController与showViewController的区别
EN

Stack Overflow用户
提问于 2015-02-13 19:49:32
回答 2查看 9.6K关注 0票数 25

pushViewController和UINavigationController上的showViewController方法有什么不同?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-13 19:53:51

Show segue可以与导航控制器一起使用,它们只需在堆栈上推送viewControllers即可。

Show detail segue仅对拆分视图控制器有意义。由于拆分视图控制器中有两个viewControllers,因此您可以:

在你的主视图控制器中导航,在你不知道拆分视图控制器是如何组成的情况下,通过展示(按下,因为默认项目使用navigationVC作为主VC),使用Show segue在你的细节视图控制器中显示细节:

代码语言:javascript
复制
**************++++++++++++++++++
*            *                 +
*            *                 +
*   master   *      detail     +
*    view    *       view      +
* controller *    controller   +
*            *                 +
*            *                 +
**************++++++++++++++++++

但是!

在iphones上,它是这样呈现的(不包括iPhone6+横向)

代码语言:javascript
复制
****************
*++++++++++++++*
*+            +*
*+            +*
*+            +*
*+   detail   +*
*+    view    +*
*+ controller +*
*+            +*
*+            +*
*++++++++++++++*
****************

ShowsegueShow detail segue都是iOS8 & Xcode6的新成员,它们被称为adaptative segues,它们根据设备类型或方向的不同而表现不同。

基本上,Show segue和Show detail segue似乎在iPhones上做了同样的事情,因为没有太多空间来并排呈现视图控制器。

从技术上讲,在返回导航之前,您不会多次显示详细信息。只有主视图控制器应该执行Show detail segues,细节视图控制器应该是导航树中的叶子(但不禁止将navigationVC用作叶子;)

希望能有所帮助。

票数 8
EN

Stack Overflow用户

发布于 2017-05-29 21:36:12

您可以使用此方法将显示视图控制器的需求与在屏幕上实际显示该视图控制器的过程解耦。

使用这种方法,视图控制器不需要知道它是嵌入在导航控制器还是拆分视图控制器中。它为这两者调用相同的方法。UISplitViewController和UINavigationController类覆盖此方法,并根据其设计处理表示。例如,导航控制器重写此方法,并使用它将vc推送到其导航堆栈上。

表单Apple UIKit Documentation

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28498947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档