是因为overCurrentContext模态展示的视图控制器会覆盖导航栏,导致导航栏被遮挡。
解决这个问题的方法是可以通过以下几种方式:
- 使用自定义转场动画:可以自定义转场动画,使得overCurrentContext模态展示的视图控制器从导航栏下方弹出,而不是覆盖导航栏。可以通过实现UIViewControllerTransitioningDelegate协议中的相关方法来实现自定义转场动画。
- 使用present(:animated:completion:)方法的参数:可以在present(:animated:completion:)方法中设置参数来控制展示方式。可以使用UIModalPresentationStyle来指定展示样式,例如使用UIModalPresentationStyle.fullScreen来覆盖整个屏幕,而不是仅覆盖导航栏。
- 使用UINavigationController的pushViewController(:animated:)方法:可以直接使用UINavigationController的pushViewController(:animated:)方法将视图控制器推送到导航栈中,而不是使用overCurrentContext模态展示。这样可以保持导航栏的正常显示。
总结起来,使用overCurrentContext显示视图控制器,然后推送到导航栈会导致导航栏下叠,可以通过自定义转场动画、设置present(:animated:completion:)方法的参数或直接使用UINavigationController的pushViewController(:animated:)方法来解决这个问题。
腾讯云相关产品和产品介绍链接地址:
- 自定义转场动画:腾讯云暂无相关产品。
- UIModalPresentationStyle:腾讯云暂无相关产品。
- UINavigationController:腾讯云暂无相关产品。