5

Sembra dalla documentazione e tutti gli esempi che ho trovato che un SFSafariViewController deve essere istanziato in modo programmatico con un URL specifico come parametro di configurazione. È possibile utilizzare un SFSafariViewController come controller dei dettagli per un UISplitViewController? L'unico modo in cui posso pensare di farlo è impostare un seguito nello storyboard, ma in tal caso SFSafariViewController non avrebbe l'URL di cui ha bisogno per visualizzarne il contenuto. Sarebbe gradito qualsiasi consiglio su come realizzare questo, programmaticamente se possibile.Come si può configurare SFSafariViewController come controller dettagli per UISplitViewController?

risposta

5

È possibile! Ho cercato per molto tempo e ho trovato una soluzione. Lo sto facendo nel mio controller di visualizzazione principale, un controller di visualizzazione tabella. Se seleziono una cella della mia vista tabella, un SafariViewController viene aperto nella vista dettagli.

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

Risultato: Safari View Controller Detail

Esso viene fornito con alcuni problemi.

  • si dovrebbe utilizzare iOS 9.1 o più per evitare questo bug UI: UI Bug Safari View Controller

  • Si dovrebbe nascondere la barra di navigazione, se si desidera visualizzare la barra di controller della vista safari standard (con URL, ...)

+0

Se hai bisogno di ulteriore aiuto, non esitare. La mia soluzione funziona, lo sto usando al momento :) –

+0

C'è comunque un modo per nascondere il pulsante eseguito in quel caso? o sostituirlo con 'displayModeButtonItem'? – Mojtaba