From 2aac0547b6e9fc1e8ae371a66c2d0734c66cec91 Mon Sep 17 00:00:00 2001 From: Damo Date: Tue, 10 Jul 2018 14:27:18 -0700 Subject: [PATCH 1/5] XCode 9.4.1 Compatibility --- .../project.pbxproj | 6 ++++- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++++++ SwiftWebVC/SwiftWebVC.swift | 5 ++-- SwiftWebVC/SwiftWebVCActivityChrome.swift | 4 +-- .../project.pbxproj | 27 ++++++++++++++++--- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++++++ .../xcschemes/SwiftWebVC.xcscheme | 2 +- 7 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 Example/SwiftWebVCExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/Example/SwiftWebVCExample.xcodeproj/project.pbxproj b/Example/SwiftWebVCExample.xcodeproj/project.pbxproj index 283ba5c..1041bee 100644 --- a/Example/SwiftWebVCExample.xcodeproj/project.pbxproj +++ b/Example/SwiftWebVCExample.xcodeproj/project.pbxproj @@ -147,7 +147,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0820; - LastUpgradeCheck = 0920; + LastUpgradeCheck = 0940; ORGANIZATIONNAME = "Myles Ringle"; TargetAttributes = { 00FFF8541E09977500015C59 = { @@ -269,6 +269,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -276,6 +277,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -326,6 +328,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -333,6 +336,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; diff --git a/Example/SwiftWebVCExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Example/SwiftWebVCExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Example/SwiftWebVCExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/SwiftWebVC/SwiftWebVC.swift b/SwiftWebVC/SwiftWebVC.swift index 584e273..2f3658c 100755 --- a/SwiftWebVC/SwiftWebVC.swift +++ b/SwiftWebVC/SwiftWebVC.swift @@ -129,8 +129,9 @@ public class SwiftWebVC: UIViewController { navBarTitle = UILabel() navBarTitle.backgroundColor = UIColor.clear if presentingViewController == nil { - if let titleAttributes = navigationController!.navigationBar.titleTextAttributes { - navBarTitle.textColor = titleAttributes[.foregroundColor] as? UIColor + + if let titleAttributes = navigationController!.navigationBar.titleTextAttributes as [NSAttributedStringKey : Any]? { + navBarTitle.textColor = titleAttributes[NSAttributedStringKey.foregroundColor] as! UIColor } } else { diff --git a/SwiftWebVC/SwiftWebVCActivityChrome.swift b/SwiftWebVC/SwiftWebVCActivityChrome.swift index aee26ba..a614544 100755 --- a/SwiftWebVC/SwiftWebVCActivityChrome.swift +++ b/SwiftWebVC/SwiftWebVCActivityChrome.swift @@ -24,7 +24,7 @@ class SwiftWebVCActivityChrome : SwiftWebVCActivity { } override func perform() { - let inputURL: URL! = URLToOpen as URL! + let inputURL: URL! = URLToOpen as URL? let scheme: String! = inputURL.scheme // Replace the URL Scheme with the Chrome equivalent. @@ -38,7 +38,7 @@ class SwiftWebVCActivityChrome : SwiftWebVCActivity { // Proceed only if a valid Google Chrome URI Scheme is available. if chromeScheme != nil { - let absoluteString: NSString! = inputURL!.absoluteString as NSString! + let absoluteString: NSString! = inputURL!.absoluteString as NSString? let rangeForScheme: NSRange! = absoluteString.range(of: ":") let urlNoScheme: String! = absoluteString.substring(from: rangeForScheme.location) let chromeURLString: String! = chromeScheme!+urlNoScheme diff --git a/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/project.pbxproj b/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/project.pbxproj index 67c4f98..ab8c94a 100644 --- a/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/project.pbxproj +++ b/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/project.pbxproj @@ -146,10 +146,11 @@ B91D24DA1E5CFE6E000F9BF1 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0820; + LastUpgradeCheck = 0940; TargetAttributes = { B91D24E21E5CFE6E000F9BF1 = { CreatedOnToolsVersion = 8.2.1; + LastSwiftMigration = 0940; ProvisioningStyle = Automatic; }; }; @@ -234,20 +235,29 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -287,20 +297,29 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -344,7 +363,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.swiftweb.SwiftWebVCFramework; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -363,7 +383,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.swiftweb.SwiftWebVCFramework; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; }; name = Release; }; diff --git a/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/xcshareddata/xcschemes/SwiftWebVC.xcscheme b/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/xcshareddata/xcschemes/SwiftWebVC.xcscheme index 5c2fb9e..7f2521a 100644 --- a/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/xcshareddata/xcschemes/SwiftWebVC.xcscheme +++ b/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/xcshareddata/xcschemes/SwiftWebVC.xcscheme @@ -1,6 +1,6 @@ Date: Tue, 10 Jul 2018 14:48:07 -0700 Subject: [PATCH 2/5] Add option to hide ToolBar - Add example to show the new feature --- .../Base.lproj/Main.storyboard | 22 ++++++++++++++----- .../SwiftWebVCExample/ViewController.swift | 6 +++++ SwiftWebVC/SwiftWebVC.swift | 18 ++++++++++----- 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/Example/SwiftWebVCExample/Base.lproj/Main.storyboard b/Example/SwiftWebVCExample/Base.lproj/Main.storyboard index 2aaa149..510c165 100644 --- a/Example/SwiftWebVCExample/Base.lproj/Main.storyboard +++ b/Example/SwiftWebVCExample/Base.lproj/Main.storyboard @@ -1,11 +1,11 @@ - + - + @@ -38,7 +38,7 @@ + @@ -64,9 +72,11 @@ + + @@ -86,7 +96,7 @@ - + diff --git a/Example/SwiftWebVCExample/ViewController.swift b/Example/SwiftWebVCExample/ViewController.swift index 0a5de3c..d3986ac 100644 --- a/Example/SwiftWebVCExample/ViewController.swift +++ b/Example/SwiftWebVCExample/ViewController.swift @@ -27,6 +27,12 @@ class ViewController: UIViewController { self.navigationController?.pushViewController(webVC, animated: true) } + @IBAction func pushWithoutToolBar() { + let webVC = SwiftWebVC(urlString: "https://www.google.com", hideToolBar: true) + webVC.delegate = self + self.navigationController?.pushViewController(webVC, animated: true) + } + // MARK: Modal @IBAction func presentModalWithDefaultTheme() { let webVC = SwiftModalWebVC(urlString: "www.google.com") diff --git a/SwiftWebVC/SwiftWebVC.swift b/SwiftWebVC/SwiftWebVC.swift index 2f3658c..7b3e0a4 100755 --- a/SwiftWebVC/SwiftWebVC.swift +++ b/SwiftWebVC/SwiftWebVC.swift @@ -79,6 +79,8 @@ public class SwiftWebVC: UIViewController { var sharingEnabled = true + var hideToolBar: Bool = false + //////////////////////////////////////////////// deinit { @@ -88,22 +90,23 @@ public class SwiftWebVC: UIViewController { webView.navigationDelegate = nil; } - public convenience init(urlString: String, sharingEnabled: Bool = true) { + public convenience init(urlString: String, sharingEnabled: Bool = true, hideToolBar: Bool = false) { var urlString = urlString if !urlString.hasPrefix("https://") && !urlString.hasPrefix("http://") { urlString = "https://"+urlString } - self.init(pageURL: URL(string: urlString)!, sharingEnabled: sharingEnabled) + self.init(pageURL: URL(string: urlString)!, sharingEnabled: sharingEnabled, hideToolBar: hideToolBar) } - public convenience init(pageURL: URL, sharingEnabled: Bool = true) { - self.init(aRequest: URLRequest(url: pageURL), sharingEnabled: sharingEnabled) + public convenience init(pageURL: URL, sharingEnabled: Bool = true, hideToolBar: Bool = false) { + self.init(aRequest: URLRequest(url: pageURL), sharingEnabled: sharingEnabled, hideToolBar: hideToolBar) } - public convenience init(aRequest: URLRequest, sharingEnabled: Bool = true) { + public convenience init(aRequest: URLRequest, sharingEnabled: Bool = true, hideToolBar: Bool = false) { self.init() self.sharingEnabled = sharingEnabled self.request = aRequest + self.hideToolBar = hideToolBar } func loadRequest(_ request: URLRequest) { @@ -145,7 +148,7 @@ public class SwiftWebVC: UIViewController { super.viewWillAppear(true) if (UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.phone) { - self.navigationController?.setToolbarHidden(false, animated: false) + self.navigationController?.setToolbarHidden(self.hideToolBar, animated: false) } else if (UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.pad) { self.navigationController?.setToolbarHidden(true, animated: true) @@ -169,6 +172,9 @@ public class SwiftWebVC: UIViewController { // Toolbar func updateToolbarItems() { + guard hideToolBar == false else { + return + } backBarButtonItem.isEnabled = webView.canGoBack forwardBarButtonItem.isEnabled = webView.canGoForward From 808a12c5d2525096aef5976aa9b06d660b580288 Mon Sep 17 00:00:00 2001 From: Damo Date: Thu, 13 Sep 2018 10:57:26 -0700 Subject: [PATCH 3/5] upgrade to swift 4.2 --- SwiftWebVC/SwiftModalWebVC.swift | 2 +- SwiftWebVC/SwiftWebVC.swift | 18 +++++++++--------- SwiftWebVC/SwiftWebVCActivity.swift | 4 ++-- .../project.pbxproj | 4 ++-- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/SwiftWebVC/SwiftModalWebVC.swift b/SwiftWebVC/SwiftModalWebVC.swift index 22ff7ef..eb9d765 100755 --- a/SwiftWebVC/SwiftModalWebVC.swift +++ b/SwiftWebVC/SwiftModalWebVC.swift @@ -46,7 +46,7 @@ public class SwiftModalWebVC: UINavigationController { let dismissButtonImageName = (dismissButtonStyle == .arrow) ? "SwiftWebVCDismiss" : "SwiftWebVCDismissAlt" let doneButton = UIBarButtonItem(image: SwiftWebVC.bundledImage(named: dismissButtonImageName), - style: UIBarButtonItemStyle.plain, + style: UIBarButtonItem.Style.plain, target: webViewController, action: #selector(SwiftWebVC.doneButtonTapped)) diff --git a/SwiftWebVC/SwiftWebVC.swift b/SwiftWebVC/SwiftWebVC.swift index 7b3e0a4..41342e7 100755 --- a/SwiftWebVC/SwiftWebVC.swift +++ b/SwiftWebVC/SwiftWebVC.swift @@ -23,7 +23,7 @@ public class SwiftWebVC: UIViewController { lazy var backBarButtonItem: UIBarButtonItem = { var tempBackBarButtonItem = UIBarButtonItem(image: SwiftWebVC.bundledImage(named: "SwiftWebVCBack"), - style: UIBarButtonItemStyle.plain, + style: UIBarButtonItem.Style.plain, target: self, action: #selector(SwiftWebVC.goBackTapped(_:))) tempBackBarButtonItem.width = 18.0 @@ -33,7 +33,7 @@ public class SwiftWebVC: UIViewController { lazy var forwardBarButtonItem: UIBarButtonItem = { var tempForwardBarButtonItem = UIBarButtonItem(image: SwiftWebVC.bundledImage(named: "SwiftWebVCNext"), - style: UIBarButtonItemStyle.plain, + style: UIBarButtonItem.Style.plain, target: self, action: #selector(SwiftWebVC.goForwardTapped(_:))) tempForwardBarButtonItem.width = 18.0 @@ -42,7 +42,7 @@ public class SwiftWebVC: UIViewController { }() lazy var refreshBarButtonItem: UIBarButtonItem = { - var tempRefreshBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.refresh, + var tempRefreshBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.refresh, target: self, action: #selector(SwiftWebVC.reloadTapped(_:))) tempRefreshBarButtonItem.tintColor = self.buttonColor @@ -50,7 +50,7 @@ public class SwiftWebVC: UIViewController { }() lazy var stopBarButtonItem: UIBarButtonItem = { - var tempStopBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.stop, + var tempStopBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.stop, target: self, action: #selector(SwiftWebVC.stopTapped(_:))) tempStopBarButtonItem.tintColor = self.buttonColor @@ -58,7 +58,7 @@ public class SwiftWebVC: UIViewController { }() lazy var actionBarButtonItem: UIBarButtonItem = { - var tempActionBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.action, + var tempActionBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.action, target: self, action: #selector(SwiftWebVC.actionButtonTapped(_:))) tempActionBarButtonItem.tintColor = self.buttonColor @@ -133,8 +133,8 @@ public class SwiftWebVC: UIViewController { navBarTitle.backgroundColor = UIColor.clear if presentingViewController == nil { - if let titleAttributes = navigationController!.navigationBar.titleTextAttributes as [NSAttributedStringKey : Any]? { - navBarTitle.textColor = titleAttributes[NSAttributedStringKey.foregroundColor] as! UIColor + if let titleAttributes = navigationController!.navigationBar.titleTextAttributes as [NSAttributedString.Key : Any]? { + navBarTitle.textColor = titleAttributes[NSAttributedString.Key.foregroundColor] as? UIColor } } else { @@ -180,8 +180,8 @@ public class SwiftWebVC: UIViewController { let refreshStopBarButtonItem: UIBarButtonItem = webView.isLoading ? stopBarButtonItem : refreshBarButtonItem - let fixedSpace: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.fixedSpace, target: nil, action: nil) - let flexibleSpace: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil) + let fixedSpace: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.fixedSpace, target: nil, action: nil) + let flexibleSpace: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil) if (UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.pad) { diff --git a/SwiftWebVC/SwiftWebVCActivity.swift b/SwiftWebVC/SwiftWebVCActivity.swift index a73bd11..cb095da 100755 --- a/SwiftWebVC/SwiftWebVCActivity.swift +++ b/SwiftWebVC/SwiftWebVCActivity.swift @@ -14,10 +14,10 @@ class SwiftWebVCActivity: UIActivity { var URLToOpen: URL? var schemePrefix: String? - override var activityType : UIActivityType? { + override var activityType : UIActivity.ActivityType? { let typeArray = "\(type(of: self))".components(separatedBy: ".") let _type: String = typeArray[typeArray.count-1] - return UIActivityType(rawValue: _type) + return UIActivity.ActivityType(rawValue: _type) } override var activityImage : UIImage { diff --git a/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/project.pbxproj b/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/project.pbxproj index ab8c94a..75da5f7 100644 --- a/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/project.pbxproj +++ b/SwiftWebVCFramework/SwiftWebVCFramework.xcodeproj/project.pbxproj @@ -364,7 +364,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 4.2; }; name = Debug; }; @@ -384,7 +384,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 4.2; }; name = Release; }; From fc61d5c1be16ad8382557f01eefe4e0a531db364 Mon Sep 17 00:00:00 2001 From: Wei Zhang Date: Wed, 17 Jul 2019 12:11:44 -0700 Subject: [PATCH 4/5] add a feature that can customize the SwiftWebVC title If you don't want to use HTML document.title as the title, you can set the title of SwiftWebVC to customize it. --- .swift-version | 2 +- Example/SwiftWebVCExample/ViewController.swift | 1 + SwiftWebVC/SwiftWebVC.swift | 15 ++++++++++----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.swift-version b/.swift-version index 5186d07..bf77d54 100644 --- a/.swift-version +++ b/.swift-version @@ -1 +1 @@ -4.0 +4.2 diff --git a/Example/SwiftWebVCExample/ViewController.swift b/Example/SwiftWebVCExample/ViewController.swift index d3986ac..b5a986e 100644 --- a/Example/SwiftWebVCExample/ViewController.swift +++ b/Example/SwiftWebVCExample/ViewController.swift @@ -24,6 +24,7 @@ class ViewController: UIViewController { @IBAction func push() { let webVC = SwiftWebVC(urlString: "https://www.google.com") webVC.delegate = self + webVC.title = "test title" self.navigationController?.pushViewController(webVC, animated: true) } diff --git a/SwiftWebVC/SwiftWebVC.swift b/SwiftWebVC/SwiftWebVC.swift index 41342e7..18a77af 100755 --- a/SwiftWebVC/SwiftWebVC.swift +++ b/SwiftWebVC/SwiftWebVC.swift @@ -304,13 +304,18 @@ extension SwiftWebVC: WKNavigationDelegate { public func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { self.delegate?.didFinishLoading(success: true) UIApplication.shared.isNetworkActivityIndicatorVisible = false - - webView.evaluateJavaScript("document.title", completionHandler: {(response, error) in - self.navBarTitle.text = response as! String? + + if let title = self.title { + self.navBarTitle.text = title self.navBarTitle.sizeToFit() self.updateToolbarItems() - }) - + }else{ + webView.evaluateJavaScript("document.title", completionHandler: {(response, error) in + self.navBarTitle.text = response as! String? + self.navBarTitle.sizeToFit() + self.updateToolbarItems() + }) + } } public func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) { From 9f3aa866f08585fdf525af72a8add653dad12db3 Mon Sep 17 00:00:00 2001 From: Wei <244297+damozhang@users.noreply.github.com> Date: Mon, 16 Mar 2026 12:11:23 -0700 Subject: [PATCH 5/5] feat: add Package.swift for SPM support Co-Authored-By: Claude Opus 4.6 --- Package.swift | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Package.swift diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..4a1073b --- /dev/null +++ b/Package.swift @@ -0,0 +1,26 @@ +// swift-tools-version:5.5 +import PackageDescription + +let package = Package( + name: "SwiftWebVC", + defaultLocalization: "en", + platforms: [ + .iOS(.v13) + ], + products: [ + .library( + name: "SwiftWebVC", + targets: ["SwiftWebVC"] + ) + ], + targets: [ + .target( + name: "SwiftWebVC", + path: "SwiftWebVC", + resources: [ + .process("Resources"), + .process("Strings") + ] + ) + ] +)