2017-11-11 128 views
0

我是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) 
     } 
    } 
} 
+0

当您出示您的ViewController你得到正确的打印依赖于网络的状态? –

+0

在viewDidAppear中试试这个。 –

+0

请确保您的segue标识符正确,在这里您使用'seque1'可能是'segue1',请重新检查您的故事板 – 3stud1ant3

回答

0

大问题...

你应该注意的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 
}