我在导航栏上点了一个按钮。我把它变成了模态视图。但问题是我无法将此模态视图放在标签栏的顶部。我该怎么办?
另外,我使用了storyboard的segue来呈现模态视图。
答案 0 :(得分:6)
很难从屏幕截图中看出来,但看起来您想要的是标签栏变灰,就像UITabBarController
中的视图背景一样?
你在哪里呈现模态视图?如果视图控制器A位于标签栏控制器内,则从A显示模态视图将导致标签栏不会变灰。如果你从标签栏控制器出现,它应该做你想要的。
在呈现视图控制器的代码中,而不是
present(modalViewController, animated: true, completion: completion)
尝试使用
tabBarController?.present(modalViewController, animated: true, completion: completion)
(当然,modalViewController
和completion
是您对这些论点的意思。)
修改强>
如果您使用segue来呈现模态控制器,则适用相同的概念。将segue移动到标签栏控制器,然后在显示视图控制器的标签栏控制器上执行它。
tabBarController?.performSegue(withIdentifier: "yourSegueIdentifier", sender: tabBarController)
答案 1 :(得分:2)
您只需使用视图控制器的modalPresentationStyle
并将其设置为fullScreen
或overFullScreen
,无论视图控制器是否从选项卡中显示,这都会自动隐藏选项卡栏不管吧。
Swift 4示例:
presentedVC.modalPresentationStyle = .overFullScreen
您可以在此处查看文档以获取更多信息: https://developer.apple.com/documentation/uikit/uimodalpresentationstyle