如何防止通过推送 SFSafariViewController 解雇 UITabBarController?

Posted

技术标签:

【中文标题】如何防止通过推送 SFSafariViewController 解雇 UITabBarController?【英文标题】:How to prevent dismissal of UITabBarController by pushed SFSafariViewController? 【发布时间】:2019-04-19 12:23:57 【问题描述】:

我正在将SFSafariViewController 推入UITabBarController。但是单击 Safari Done 按钮会关闭 UITabBarController。如何预防?

【问题讨论】:

如果你推它,而不是弹出而不是关闭 【参考方案1】:

如果您要推送SFSafariViewController,请尝试使用popViewController 而不是dismiss

self.navigationController?.popViewController(animated: true)

或者你可以present SFSafariViewController 而不是推送它

safariViewController.modalTransitionStyle = .crossDissolve
safariViewController.modalPresentationStyle = .overCurrentContext

self.present(safariViewController, animated: false, completion:nil)

【讨论】:

1. Safari 视图控制器总是调用dismiss,我无法避免它 2. 目前以模态方式显示 Safari 视图控制器,底部标签栏是隐藏的,因此无法在栏项目之间切换 @PeterBalogh 尝试将modalPresentationStyle 设置为overCurrentContext 它会解决您的问题。相应地编辑了答案 overCurrentContext 演示样式有帮助 :-) 不幸的是,出现了另一个问题:当 safari 视图打开时,我切换到另一个栏项目视图,而不是切换回 safari 视图并关闭它,而不是当前视图未显示,选项卡为空。我必须切换到另一个栏项,而不是切换回显示视图。

以上是关于如何防止通过推送 SFSafariViewController 解雇 UITabBarController?的主要内容,如果未能解决你的问题,请参考以下文章

推送标题部分项目后如何防止单元格编辑?

收到推送通知且应用程序在前台时如何防止弹出警报

Git 分支提示位于其远程对应项的后面,并且正在防止“推送”

如何使用 pushViewController 方法防止计时器重置?

zeromq:如何防止无限等待?

打开另一个通知时,如何防止通知从通知中心消失? iOS