0
私は理由を知りませんが、ボタンをクリックして繰り返し実行することはできないという前提の下にありました。クリックごとにボタンが何度も実行されないようにするにはどうすればよいですか?
私はかなり簡単なコードを持っています。 私のボタンがクリックされると、urlSessionを使って別のviewControllerのbackgroundviewに画像をダウンロードし、それを継ぐ。
私の問題は、画像を読み込むのを待っている間にボタンを3回クリックすると、viewControllerは3レイヤーをnavigationControllerに分割し、元のviewControllerに戻すために、戻るボタンを3回クリックする必要があるということです。私は3つのレイヤーをセグしてはいけませんか?
@IBAction func showImage(_: UIButton) {
loadImage()
}
func loadImage() {
let url = URL(string: "https://upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/1280px-Flag_of_the_United_States.svg.png")
var request = NSMutableURLRequest(url: url!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0)
request.httpMethod = "GET"
let session = URLSession.shared.dataTask(with: request as URLRequest) { (data, response, error) in
guard let data = data else {
print("You got an error:\(error)")
return
}
let img = UIImage(data: data)
let imgview = UIImageView(image: img)
let sb = UIStoryboard(name: "Main", bundle: nil)
let ivc = sb.instantiateViewController(withIdentifier: "showImage")
ivc.view = imgview
self.navigationController?.pushViewController(ivc, animated: true)
}
session.resume()
}
あなたがイメージのロードを開始する前にボタンを無効にしますか? –
@PhillipMillsだから私のコードは間違った方法で構造化されていないのですか?それ以外は追加する必要がありますか?私はセグメンテーションした後、もう一度ボタンを有効にしますか? – Honey
@ハニーあなたの質問のタイトルを読んでもらえますか? – Alexander