我使用SafariViewController
来显示网页,而不是默认"已完成"按钮我从我的应用程序NavigationController
推送以保留我的导航堆栈和后退箭头。但是,我需要隐藏SafariViewController
上的默认完成按钮和搜索栏。这可能吗?请参阅下面的代码和屏幕截图...
let svc = SFSafariViewController(URL: pinterestSafariURL)
navigationController?.pushViewController(svc, animated: true)
注意:链接到这个问题,但答案是黑客,而我正在寻找使用SafariViewController API的解决方案:SFSafariViewController: Hide navigation bar
答案 0 :(得分:6)
SFSafariViewController
上的每{{}}},似乎没有一种可公开访问的隐藏完成按钮或网址栏的方法。如果您需要自定义浏览器界面,Apple建议您使用Apple's documentation。
有一个WKWebView,可以向您展示如何使用嵌入式ViewController
创建WKWebView
。希望有所帮助!
答案 1 :(得分:0)
为自己的丑陋和脆弱做好准备:
extension MyViewController: SFSafariViewControllerDelegate
{
func safariViewController(_ controller: SFSafariViewController, didCompleteInitialLoad didLoadSuccessfully: Bool)
{
let f = CGRect(origin: CGPoint(x: 0, y: 20),
size: CGSize(width: 90, height: 44))
let uglyView = UIView(frame: f)
uglyView.backgroundColor = svc.view.backgroundColor
controller.view.addSubview(uglyView)
}
}
很明显,起源y需要修复iPhone X才能使它工作或多或少。我很高兴看到Apple使用.none按钮样式来解决此问题 在iOS 14中可用。