如何在选项卡栏控制器顶部显示模式视图



我在导航栏上做了一个按钮。我把它带到了模态视图。但问题是我无法将此模态视图放在选项卡栏的顶部。我该怎么办?

此外,我还使用故事板的 segue 来呈现模态视图。

输入以查看情节提要图像

输入以查看模拟器图像

很难从屏幕截图中分辨出来,但似乎您想要的是让选项卡栏变灰,就像UITabBarController内视图的背景一样?

您从哪里展示模态视图?如果视图控制器 A 位于选项卡栏控制器内,则从 A 显示模式视图将导致选项卡栏不会灰显。如果您从选项卡栏控制器进行演示,它应该执行您想要的操作。

在表示视图控制器的代码中,而不是

present(modalViewController, animated: true, completion: completion)

尝试使用

tabBarController?.present(modalViewController, animated: true, completion: completion)

(当然,modalViewControllercompletion是你打算用于这些参数的地方。

如果使用 segue 来呈现模态控制器,则适用相同的概念。将 segue 移动到选项卡栏控制器,然后从呈现视图控制器在选项卡栏控制器上执行它。

tabBarController?.performSegue(withIdentifier: "yourSegueIdentifier", sender: tabBarController)

您只需使用视图控制器的modalPresentationStyle并将其设置为fullScreenoverFullScreen,这都会自动隐藏选项卡栏,无论视图控制器是否从选项卡栏中显示。

迅捷 4 示例:

presentedVC.modalPresentationStyle = .overFullScreen

您可以查看文档以获取更多信息:UIModalPresentationStyle

最新更新