Found the following, which was really helpful for me (found on the Apple Developer Forums). The below code works with Swift 4.
func fetchSSIDInfo() ->  String {  
    var currentSSID = ""  
    if let interfaces:CFArray = CNCopySupportedInterfaces() {  
        for i in 0..<CFArrayGetCount(interfaces){  
            let interfaceName: UnsafeRawPointer = CFArrayGetValueAtIndex(interfaces, i)  
            let rec = unsafeBitCast(interfaceName, to: AnyObject.self)  
            let unsafeInterfaceData = CNCopyCurrentNetworkInfo("\(rec)" as CFString)  
            if unsafeInterfaceData != nil {  
                let interfaceData = unsafeInterfaceData! as Dictionary!  
                for dictData in interfaceData! {  
                    if dictData.key as! String == "SSID" {  
                        currentSSID = dictData.value as! String  
                    }  
                }  
            }  
        }  
    }  
    return currentSSID  
}  
You can then check if a device is connected to Wi-Fi by the following: 
if fetchSSIDInfo() != nil { 
    /* Wi-Fi is Connected */ 
}
Not perfect, but if the device is not connected to a Wi-Fi Network, you could then ask the user to connect to a Wi-Fi Network:
let wifiNotifcation = UIAlertController(title: "Please Connect to Wi-Fi", message: "Please connect to your standard Wi-Fi Network", preferredStyle: .alert)
wifiNotifcation.addAction(UIAlertAction(title: "Open Wi-Fi", style: .default, handler: { (nil) in
     let url = URL(string: "App-Prefs:root=WIFI")
     if UIApplication.shared.canOpenURL(url!){
           UIApplication.shared.openURL(url!)
           self.navigationController?.popViewController(animated: false)
     }
}))
self.present(wifiNotifcation, animated: true, completion: nil)