如何根据网络连接进行segue?

Posted

技术标签:

【中文标题】如何根据网络连接进行segue?【英文标题】:How to perform a segue according to network connection? 【发布时间】:2017-11-11 14:28:24 【问题描述】:

我是 Xcode 平台和 ios 编程的新手。

如果有网络连接,我想打开 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)
        
    

【问题讨论】:

当你展示你的 ViewController 时,你会根据网络状态得到正确的打印结果吗? 在 viewDidAppear 中试试这个。 请确保您的 segue 标识符正确,这里使用seque1 可能是segue1,请重新检查您的故事板 【参考方案1】:

好问题...

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

【讨论】:

以上是关于如何根据网络连接进行segue?的主要内容,如果未能解决你的问题,请参考以下文章

VM虚拟机如何连接网络(具体情况内详)

您如何对社交网络节点进行分组?

如何检查网络连接?

win8中mac虚拟机网络连接如何设置

ubuntu的有线网络如何设置

请问怎么让手机连接热点?