Вызовите SFSafariViewController из UITabBarController и вернитесь после нажатия кнопки «Готово». - PullRequest
0 голосов
/ 10 июня 2019

У меня есть пользовательский UITabBarController с пользовательской кнопкой.Когда я нажимаю эту кнопку, я открываю SFSafariViewController - здесь все работает нормально.Но когда я нажал кнопку "done" в SFSafariViewController, его отклонили.но я не могу вернуться к UITabBarController, я вижу только цвет фона, который я добавил в окне делегата приложения.

Пример кода:

class TabBar: UITabBarController, UITabBarControllerDelegate, SFSafariViewControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        delegate = self
    }

    func setupCenterButton() {
        let centerButton = CenterButton(frame: CGRect(x: 0, y: 0, width: 74, height: 74))
        centerButton.layer.cornerRadius = 37
        centerButton.frame.origin.y = self.tabBar.frame.minY - 37
        centerButton.frame.origin.x = view.bounds.width/2 - 37
        centerButton.setImage(UIImage(named: "google"), for: .normal)
        centerButton.addTarget(self, action: #selector(openURL), for: .touchUpInside)
        view.addSubview(centerButton)
        view.layoutIfNeeded()
    }

    @objc func openURL() {
        let termsURL = SFSafariViewController(url: URL(string: "https://google.ru")!)
        termsURL.modalPresentationStyle = .currentContext
        termsURL.delegate = self
        self.present(termsURL, animated: true, completion: nil)
    }
}

Как можноЯ представляю UITabBarController после SFSafariViewController?

1 Ответ

0 голосов
/ 10 июня 2019
func safariViewControllerDidFinish(_ controller: SFSafariViewController) {
    //To access the  Specific tabBar ViewController
    let tabBarController = storyboard?.instantiateViewController(withIdentifier: "IdentifierTabbar") as! TabBar
   // tabBarController.isComingFrom = "Settings" // Assign the Value                
    window?.rootViewController = tabBarController
}
...