XCode 7 - Swift - Автоматическая загрузка сайта через SFSafariViewController

Я нахожусь в процессе обновления нашего приложения iTunes и хотел бы воспользоваться новым API SFSafariViewController. Вариант использования очень прост: когда пользователь открывает приложение, оно автоматически загружает установленный URL в SFSafariViewController.

По-видимому, существуют ограниченные учебники по этому вопросу, и те, которые существуют, включают IBActions по ссылкам, как только приложение открыто.

Как автоматически открыть ссылку в SFSafariViewController, когда пользователь щелкает приложение на своем устройстве?

Следующий код только белые страницы:

import UIKit
import SafariServices

class ViewController: UIViewController
{
    private var urlString:String = "https://example.com"

    override func viewDidLoad()
    {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let svc = SFSafariViewController(URL: NSURL(string: self.urlString)!)

        svc.presentViewController(self, animated: true, completion: nil)
    }

    override func didReceiveMemoryWarning()
    {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

---- рабочий код ----

import UIKit
import SafariServices

class ViewController: UIViewController
{
    private var urlString:String = "https://example.com"

    override func viewDidLoad()
    {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning()
    {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    override func viewDidAppear(animated: Bool) {

        super.viewDidAppear(animated)

        let svc = SFSafariViewController(URL: NSURL(string: self.urlString)!)

        self.presentViewController(svc, animated: true, completion: nil)
    }
}

1 ответ

Решение

Ваш текущий код пытается представить текущий вид контроллера (ViewController) от SFSafariViewController, который даже не отображается пока.

Попробуйте поменять это:

svc.presentViewController(self, animated: true, completion: nil)

За это:

self.presentViewController(svc, animated: true, completion: nil)
Другие вопросы по тегам