12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- //
- // SwiftModalWebVC.swift
- //
- // Created by Myles Ringle on 24/06/2015.
- // Transcribed from code used in SVWebViewController.
- // Copyright (c) 2015 Myles Ringle & Oliver Letterer. All rights reserved.
- //
- import UIKit
- public class SwiftModalWebVC: UINavigationController {
-
- public enum SwiftModalWebVCTheme {
- case lightBlue, lightBlack, dark
- }
-
- weak var webViewDelegate: UIWebViewDelegate? = nil
-
- public convenience init(urlString: String) {
- self.init(pageURL: URL(string: urlString)!)
- }
-
- public convenience init(urlString: String, theme: SwiftModalWebVCTheme) {
- self.init(pageURL: URL(string: urlString)!, theme: theme)
- }
-
- public convenience init(pageURL: URL) {
- self.init(request: URLRequest(url: pageURL))
- }
-
- public convenience init(pageURL: URL, theme: SwiftModalWebVCTheme) {
- self.init(request: URLRequest(url: pageURL), theme: theme)
- }
-
- public init(request: URLRequest, theme: SwiftModalWebVCTheme = .dark) {
- let webViewController = SwiftWebVC(aRequest: request)
- webViewController.storedStatusColor = UINavigationBar.appearance().barStyle
- let doneButton = UIBarButtonItem(image: SwiftWebVC.bundledImage(named: "SwiftWebVCDismiss"),
- style: UIBarButtonItemStyle.plain,
- target: webViewController,
- action: #selector(SwiftWebVC.doneButtonTapped))
-
- switch theme {
- case .lightBlue:
- doneButton.tintColor = nil
- webViewController.buttonColor = nil
- webViewController.titleColor = UIColor.black
- UINavigationBar.appearance().barStyle = UIBarStyle.default
- case .lightBlack:
- doneButton.tintColor = UIColor.darkGray
- webViewController.buttonColor = UIColor.darkGray
- webViewController.titleColor = UIColor.black
- UINavigationBar.appearance().barStyle = UIBarStyle.default
- case .dark:
- doneButton.tintColor = UIColor.white
- webViewController.buttonColor = UIColor.white
- webViewController.titleColor = UIColor.groupTableViewBackground
- UINavigationBar.appearance().barStyle = UIBarStyle.black
- }
-
- if (UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.pad) {
- webViewController.navigationItem.leftBarButtonItem = doneButton
- }
- else {
- webViewController.navigationItem.rightBarButtonItem = doneButton
- }
- super.init(rootViewController: webViewController)
- }
-
- override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
- super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
- }
-
- required public init(coder aDecoder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- override public func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(false)
- }
- }
|