diff --git a/Source/Turbo Navigator/TurboNavigator.swift b/Source/Turbo Navigator/TurboNavigator.swift index 1477972..f67bca1 100644 --- a/Source/Turbo Navigator/TurboNavigator.swift +++ b/Source/Turbo Navigator/TurboNavigator.swift @@ -88,7 +88,7 @@ public class TurboNavigator { private func controller(for proposal: VisitProposal) -> UIViewController? { switch delegate.handle(proposal: proposal) { case .accept: - Turbo.config.defaultViewController.self.init(url: proposal.url) + Turbo.config.defaultViewController(proposal.url) case .acceptCustom(let customViewController): customViewController case .reject: diff --git a/Source/Turbo.swift b/Source/Turbo.swift index dfc2e8e..6c13fcd 100644 --- a/Source/Turbo.swift +++ b/Source/Turbo.swift @@ -13,7 +13,9 @@ public class TurboConfig { /// The view controller used in `TurboNavigator` for web requests. Must be /// a `VisitableViewController` or subclass. - public var defaultViewController = VisitableViewController.self + public var defaultViewController: (URL) -> VisitableViewController = { url in + VisitableViewController(url: url) + } /// Optionally customize the web views used by each Turbo Session. /// Ensure you return a new instance each time. diff --git a/Source/Visitable/VisitableViewController.swift b/Source/Visitable/VisitableViewController.swift index fb00407..b245952 100644 --- a/Source/Visitable/VisitableViewController.swift +++ b/Source/Visitable/VisitableViewController.swift @@ -5,7 +5,7 @@ open class VisitableViewController: UIViewController, Visitable { open weak var visitableDelegate: VisitableDelegate? open var visitableURL: URL! - public required convenience init(url: URL) { + public convenience init(url: URL) { self.init() self.visitableURL = url }