如何在标签栏控制器上显示模态视图?

时间:2017-01-11 15:16:02

标签: ios

我在导航栏上点了一个按钮。我把它变成了模态视图。但问题是我无法将此模态视图放在标签栏的顶部。我该怎么办?

另外,我使用了storyboard的segue来呈现模态视图。

Enter to see storyboard image

Enter to see simulator image

2 个答案:

答案 0 :(得分:6)

很难从屏幕截图中看出来,但看起来您想要的是标签栏变灰,就像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)

答案 1 :(得分:2)

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

Swift 4示例:

presentedVC.modalPresentationStyle = .overFullScreen

您可以在此处查看文档以获取更多信息: https://developer.apple.com/documentation/uikit/uimodalpresentationstyle