UINavigationController.presentViewController 和 self.presentViewController 有什么区别?
What is the difference between UINavigationController.presentViewController and self.presentViewController?
假设我有一个带根视图控制器 A 的导航控制器,我需要呈现一个视图控制器 B,我可以使用以下两种方式之一:
self.navigationController!.presentViewController(b, animated: true)
或
self.presentViewController(b, animated: true)
但是,我只是想知道,这两种方式有什么区别?
它们是类似的 - 都启动模态表示。
在最近的 iOS 版本中,模态呈现总是到达最顶层的容器视图控制器。因此,当您的视图控制器(又名 self
)是导航控制器(又名 self.navigationController
)内的容器时,当您尝试在视图控制器上呈现时,它会将呈现职责传递给导航控制器。一旦演示完成,您可以通过记录 b
的 presentingController
来验证这一点。在这两种情况下,presentingController
将成为导航控制器。
假设我有一个带根视图控制器 A 的导航控制器,我需要呈现一个视图控制器 B,我可以使用以下两种方式之一:
self.navigationController!.presentViewController(b, animated: true)
或
self.presentViewController(b, animated: true)
但是,我只是想知道,这两种方式有什么区别?
它们是类似的 - 都启动模态表示。
在最近的 iOS 版本中,模态呈现总是到达最顶层的容器视图控制器。因此,当您的视图控制器(又名 self
)是导航控制器(又名 self.navigationController
)内的容器时,当您尝试在视图控制器上呈现时,它会将呈现职责传递给导航控制器。一旦演示完成,您可以通过记录 b
的 presentingController
来验证这一点。在这两种情况下,presentingController
将成为导航控制器。