我在导航栏上做了一个按钮。我把它带到了模态视图。但问题是我无法将此模态视图放在选项卡栏的顶部。我该怎么办?
此外,我还使用故事板的 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
并将其设置为fullScreen
或overFullScreen
,这都会自动隐藏选项卡栏,无论视图控制器是否从选项卡栏中显示。
迅捷 4 示例:
presentedVC.modalPresentationStyle = .overFullScreen
您可以查看文档以获取更多信息:UIModalPresentationStyle