意外的 SafariViewController 反应
Unexpected SafariViewController reaction
我有一个带有一些 Table 视图控制器的应用程序。在每个单元格的最后一个中,我有一个不同的 url。然后我决定插入一个 SafariVC,但发生的情况是它就像 FirstResponder 一样。
class Page3: UITableViewController, GADBannerViewDelegate, SFSafariViewControllerDelegate {
...
@IBOutlet weak var websiteTextView: UITextView!
...
override func viewDidLoad() {
super.viewDidLoad()
...
websiteTextView.text = goP3.website
let safariVC = SFSafariViewController(url: URL(string: goP3.website)!)
present(safariVC, animated: true, completion: nil)
safariVC.delegate = self
...
}
}
看了上面的gif,有两个疑惑:
1st. 当我进入 Page3
时,它会自动打开 SafariViewController。我该如何解决?
2st. 当我单击 url 时,它不会打开 SafariViewController。我该怎么做才能修复它?
对于 1) 第一个问题的答案如下:
您需要从 ViewDidLoad 方法中删除以下代码:
websiteTextView.text = goP3.website
let safariVC = SFSafariViewController(url: URL(string: goP3.website)!)
present(safariVC, animated: true, completion: nil)
safariVC.delegate = self
对于2)第二个问题的答案如下:
您需要创建一个 UIButton 并为 goP3.website 设置标题文本。然后为该 UIButton 创建 IBAction 方法。类似下面
@IBOutlet weak var btnWebsite: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
...
btnOK.setTitle(goP3.website, for: .normal)
}
@IBAction func btnWebsiteSelect(_ sender: UIButton) {
let safariVC = SFSafariViewController(url: URL(string: goP3.website)!)
present(safariVC, animated: true, completion: nil)
safariVC.delegate = self
}
我有一个带有一些 Table 视图控制器的应用程序。在每个单元格的最后一个中,我有一个不同的 url。然后我决定插入一个 SafariVC,但发生的情况是它就像 FirstResponder 一样。
class Page3: UITableViewController, GADBannerViewDelegate, SFSafariViewControllerDelegate {
...
@IBOutlet weak var websiteTextView: UITextView!
...
override func viewDidLoad() {
super.viewDidLoad()
...
websiteTextView.text = goP3.website
let safariVC = SFSafariViewController(url: URL(string: goP3.website)!)
present(safariVC, animated: true, completion: nil)
safariVC.delegate = self
...
}
}
看了上面的gif,有两个疑惑:
1st. 当我进入 Page3
时,它会自动打开 SafariViewController。我该如何解决?
2st. 当我单击 url 时,它不会打开 SafariViewController。我该怎么做才能修复它?
对于 1) 第一个问题的答案如下: 您需要从 ViewDidLoad 方法中删除以下代码:
websiteTextView.text = goP3.website
let safariVC = SFSafariViewController(url: URL(string: goP3.website)!)
present(safariVC, animated: true, completion: nil)
safariVC.delegate = self
对于2)第二个问题的答案如下: 您需要创建一个 UIButton 并为 goP3.website 设置标题文本。然后为该 UIButton 创建 IBAction 方法。类似下面
@IBOutlet weak var btnWebsite: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
...
btnOK.setTitle(goP3.website, for: .normal)
}
@IBAction func btnWebsiteSelect(_ sender: UIButton) {
let safariVC = SFSafariViewController(url: URL(string: goP3.website)!)
present(safariVC, animated: true, completion: nil)
safariVC.delegate = self
}