Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SwiftUI检查URL是否可访问,并自动切换到ContentView_Swiftui_Connection_Func_Contentview - Fatal编程技术网

SwiftUI检查URL是否可访问,并自动切换到ContentView

SwiftUI检查URL是否可访问,并自动切换到ContentView,swiftui,connection,func,contentview,Swiftui,Connection,Func,Contentview,我尝试此操作以检查连接状态: func checkConnection() { if let url = URL(string: "https://www.xxxxxxxxxxxxxxxxxxxxx") { var request = URLRequest(url: url) request.httpMethod = "HEAD" URLSession(configuration: .default) .dataTask

我尝试此操作以检查连接状态:

func checkConnection() {
if let url = URL(string: "https://www.xxxxxxxxxxxxxxxxxxxxx") {
    var request = URLRequest(url: url)
    request.httpMethod = "HEAD"
    URLSession(configuration: .default)
      .dataTask(with: request) { (_, response, error) -> Void in
        guard error == nil else {
          print("Error:", error ?? "")
          return
        }

        guard (response as? HTTPURLResponse)?
          .statusCode == 200 else {
            print("down")

            return
        }

        print("up")

        
        
      }
      .resume()
  }
}
而且效果很好。它在控制台中显示“向上”或“向下”。我是Xcode和SwiftUI的初学者,所以我的问题是: 如果URL是可访问的,我想自动转到“ContentView”,而不是打印(“up”)。我尝试了ContentView(),但它不起作用


感谢您的帮助。

这可以通过导航链接轻松处理。一种方法是执行以下操作

添加绑定以保持视图处于活动状态时的状态。 添加导航链接以显示所需的视图。 检查您的条件是否返回真/假 如果条件为true,则绑定状态将更新NavigationLink并显示视图

@State var isValidURL = false

//Body {...

NavigationLink(destination: ContentView(), isActive: isValidURL {}


func checkConnection() {
if let url = URL(string: "https://www.xxxxxxxxxxxxxxxxxxxxx") {
    var request = URLRequest(url: url)
    request.httpMethod = "HEAD"
    URLSession(configuration: .default)
      .dataTask(with: request) { (_, response, error) -> Void in
        guard error == nil else {
          print("Error:", error ?? "")
          return
        }

        guard (response as? HTTPURLResponse)?
          .statusCode == 200 else {
            print("down")

            return
        }

        self.isValidURL.toggle()
      }
      .resume()
  }
}

您能否显示您当前所在的视图以及如何调用
checkConnection