5

Z dokumentacji i wszystkich przykładów wynika, że ​​SFSafariViewController musi być programowo utworzony z określonym adresem URL jako parametrem konfiguracyjnym. Czy możliwe jest użycie SFSafariViewController jako kontrolera szczegółu dla kontrolera UISplitViewController? Jedynym sposobem, w jaki mogę to zrobić, jest ustawienie segue w scenorysie, ale w takim przypadku SFSafariViewController nie będzie miał adresu URL, który będzie potrzebny do wyświetlenia jego zawartości. Jakakolwiek rada, jak to osiągnąć, programowo, jeśli to możliwe, byłaby doceniona.W jaki sposób SFSafariViewController może zostać skonfigurowany jako kontroler szczegółu dla kontrolera UISplitViewController?

Odpowiedz

5

Jest to możliwe! Szukałem od dawna i znalazłem rozwiązanie. Robię to w moim głównym kontroler widoku, kontroler widoku tabeli. Jeśli wybiorę komórkę z mojego widoku tabeli, w widoku szczegółów zostanie otwarty kontroler SafariViewController.

let safariViewController = SFSafariViewController(URL: NSURL(String: "http://google.com")) 
self.showDetailViewController(safariViewController, sender: nil) 

Wynik: Safari View Controller Detail

Pochodzi z pewnymi problemami.

  • Należy używać iOS 9.1 lub więcej, aby uniknąć tego błędu UI: UI Bug Safari View Controller

  • Należy ukryć pasek nawigacyjny, jeśli chcesz zobaczyć standardowego kontrolera widoku safari bar (z adresem URL, ...)

+0

Jeśli potrzebujesz dodatkowej pomocy, nie zwlekaj. Moje rozwiązanie działa, używam go w tej chwili :) –

+0

Czy w takim razie jest jeszcze ukryty przycisk zakończenia? lub zastąpić go 'displayModeButtonItem'? – Mojtaba