0

タイムアウト要求がなくなった場合に前の画面に戻るようにネットワーク セッション クリエーターをセットアップしようとしています。今のところ、どこでどのように実行するのか完全にはわかりません。コードは次のとおりです。

  lazy var configuration: URLSessionConfiguration = URLSessionConfiguration.default

  lazy var session: URLSession = URLSession(configuration: self.configuration)

 typealias JSONData = ((Data) -> Void)

  func getJSONData(type: String, urlExtension: String, completion: @escaping JSONData) {

    configuration.timeoutIntervalForRequest = 5
    configuration.timeoutIntervalForResource = 5

    let request = URLRequest(url: URL(string:"\(baseURL)\(type)/\(urlExtension)?api_key=\(apiKey)")! )

    let dataTask = session.dataTask(with: request, completionHandler: { (data, response, error) in

      if error == nil {
        if let httpResponse = response as? HTTPURLResponse {
          switch (httpResponse.statusCode) {
          case 200:
            if let data = data {
              completion(data)
            }
          default:
            print(httpResponse.statusCode)
          }
        }
      } else {
        print("Error: \(error?.localizedDescription)")
      }
    })
    dataTask.resume()
  }
4

3 に答える 3

0

show segue を使用して現在の VC にアクセスした場合は、次を使用できます。

_ = self.navigationController?.popViewController(animated: true)

モーダル セグエを使用する場合は、次のようにします。

_ = self.navigationController?.dismiss(animated: true)
于 2017-03-14T14:07:57.957 に答える