我在导航栏上点了一个按钮.我把它变成了模态视图.但问题是我无法将此模态视图放在标签栏的顶部.我该怎么办?
另外,我使用了storyboard的segue来呈现模态视图.
进入以查看故事板图像
进入以查看模拟器图像
很难从屏幕截图中看出来,但看起来你想要的是标签栏变成灰色,就像里面的视图背景一样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)
您可以简单地使用modalPresentationStyle
View Controller的并将其设置为fullScreen
或overFullScreen
,这将自动隐藏选项卡栏,无论是否通过选项卡栏显示视图控制器。
Swift 4示例:
presentedVC.modalPresentationStyle = .overFullScreen
您可以在此处查看文档以获取更多信息:https : //developer.apple.com/documentation/uikit/uimodalpresentationstyle