pushViewController和UINavigationController上的showViewController方法有什么不同?
发布于 2015-02-13 19:53:51
Show segue可以与导航控制器一起使用,它们只需在堆栈上推送viewControllers即可。
Show detail segue仅对拆分视图控制器有意义。由于拆分视图控制器中有两个viewControllers,因此您可以:
在你的主视图控制器中导航,在你不知道拆分视图控制器是如何组成的情况下,通过展示(按下,因为默认项目使用navigationVC作为主VC),使用Show segue在你的细节视图控制器中显示细节:
**************++++++++++++++++++
* * +
* * +
* master * detail +
* view * view +
* controller * controller +
* * +
* * +
**************++++++++++++++++++
但是!
在iphones上,它是这样呈现的(不包括iPhone6+横向)
****************
*++++++++++++++*
*+ +*
*+ +*
*+ +*
*+ detail +*
*+ view +*
*+ controller +*
*+ +*
*+ +*
*++++++++++++++*
****************
Showsegue
和Show detail segue
都是iOS8
& Xcode6
的新成员,它们被称为adaptative segues
,它们根据设备类型或方向的不同而表现不同。
基本上,Show segue
和Show detail segue似乎在iPhones上做了同样的事情,因为没有太多空间来并排呈现视图控制器。
从技术上讲,在返回导航之前,您不会多次显示详细信息。只有主视图控制器应该执行Show detail segues,细节视图控制器应该是导航树中的叶子(但不禁止将navigationVC用作叶子;)
希望能有所帮助。
发布于 2017-05-29 21:36:12
您可以使用此方法将显示视图控制器的需求与在屏幕上实际显示该视图控制器的过程解耦。
使用这种方法,视图控制器不需要知道它是嵌入在导航控制器还是拆分视图控制器中。它为这两者调用相同的方法。UISplitViewController和UINavigationController类覆盖此方法,并根据其设计处理表示。例如,导航控制器重写此方法,并使用它将vc推送到其导航堆栈上。
https://stackoverflow.com/questions/28498947
复制相似问题