pushViewController和showViewController之间的区别

tai*_*lec 19 uiviewcontroller uinavigationcontroller ios

UINavigationController上的pushViewController和showViewController方法有什么区别?

Aad*_*ani 7

显示segue可以与导航控制器一起使用,它们只是将viewControllers推送到堆栈上.

显示细节segue只对分割视图控制器有意义.由于拆分视图控制器中有两个viewControllers,因此您可以:

通过呈现(推送,因为默认项目使用navigationVC作为主VC)在您的主视图控制器中导航,在您的详细视图控制器中显示segue显示详细信息的视图控制器显示详细信息segue如果您不知道如何拆分视图控制器被创作:

**************++++++++++++++++++
*            *                 +
*            *                 +
*   master   *      detail     +
*    view    *       view      +
* controller *    controller   +
*            *                 +
*            *                 +
**************++++++++++++++++++
Run Code Online (Sandbox Code Playgroud)

但是!

在iphone上它是这样呈现的(iPhone6 +横向除外)

****************
*++++++++++++++*
*+            +*
*+            +*
*+            +*
*+   detail   +*
*+    view    +*
*+ controller +*
*+            +*
*+            +*
*++++++++++++++*
****************
Run Code Online (Sandbox Code Playgroud)

两者的ShowsegueShow detail segue是新的iOS8&Xcode6,他们被称为adaptative segues,他们行为有所根据设备类型或方向.

基本上,Show segue和显示细节segue似乎在iPhone上做同样的事情,因为没有太多的空间来并排显示视图控制器.

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

希望能帮助到你.

  • 似乎我对你的答案一无所知.OP要求**`pushViewController`**vs`howViewController`.你在哪里谈论`pushViewController`?我只能看到你正在比较'show segue'和'show detail segue'...... (12认同)