如何根据网络连接执行segue?
问题描述:
我是Xcode平台和iOS编程的新手。如何根据网络连接执行segue?
- 我想打开webkit视图,如果有网络连接。如果没有连接,我想打开另一个页面。
- 我有第二页的segue,ID为“seque1”。
但我的代码没有工作。我不明白为什么。
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet weak var webview: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
if Reachability.isConnectedToNetwork(){
print("Internet Connection Available!")
let url = URL(string: "https://www.URL.com")
let request = URLRequest(url: url!)
webview.load(request)
}else{
print("Internet Connection not Available!")
performSegue(withIdentifier: "seque1", sender: self)
}
}
}
答
大问题...
你应该注意的AppDelegate.swift
这些事件,让你知道,之前的东西拿到手里,你选择什么应该发生
使用RootViewController
,你决定如果用户没有连接,将它们传送给视图控制器,表明没有连接,如果他们这样做,则继续处理它们。
上粘贴此代码的Appdelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {`
let No_InternetViewController = NoInternetViewController() // your no internet vc
let WebkitVC = WebkitVC() // orginial one
if Reachability.isConnectedToNetwork(){
self.window?.rootViewController = WebkitVC as! WebkitVC
} else {
print("Internet Connection not Available!")
self.window?.rootViewController = No_InternetViewController as! No_InternetViewController
}
return true
}
当您出示您的ViewController你得到正确的打印依赖于网络的状态? –
在viewDidAppear中试试这个。 –
请确保您的segue标识符正确,在这里您使用'seque1'可能是'segue1',请重新检查您的故事板 – 3stud1ant3