在UINavigationController中,topViewController,visibleViewController,presentsViewController有什么区别?

时间:2015-10-28 15:43:10

标签: ios objective-c swift uiviewcontroller uinavigationcontroller

UINavigationController有3个控制器听起来与我非常相似:topViewControllervisibleViewControllerpresentedViewController

您在哪些场景中使用这些控制器?

2 个答案:

答案 0 :(得分:8)

presentedViewController是屏幕上显示的当前模式。 topViewController是导航堆栈顶部的视图控制器(请参阅viewControllers()方法),visibleViewController是屏幕上当前显示的视图控制器(可以是控制器,模态,{{1} 1}},UINavigationController等等。

答案 1 :(得分:2)

  • TopViewController是导航堆栈中最顶层的VC。或者最后推送的View控制器。

  • PresentedViewController是从navigationController以模态方式呈现的viewController。它不是NaivagationController的水平堆栈的一部分,但是它上面有一个viewController。

  • 在这两个viewControllers中,用户可见的那个将是navigationController的visibleViewController。