質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

788閲覧

【Swift】画面遷移時の値・受け渡し方(初心者)

skt9

総合スコア1

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/06/09 02:34

編集2021/06/09 14:36

【Swift】画面遷移時の値・受け渡し方

SwiftでViewControllerよりAPIで取得した画像をButtonでLikeなのかButなのかを押下しLikeが押された時だけLike押下時の画像を保存
TabuleViewのCellにviewcontrollerでLike押下時に保存した画像を画面遷移させたいのですが上手く画像が反映されない

発生している問題・エラーメッセージ

@IBAction func goodButton(_ sender: Any) { count = count + 1 print(count) LikeImage = KensakuImage //←の後なんて記述すれば上手くLikeImageに押下時の画像が入るのか

遷移元のソースコード

import UIKit import Alamofire import SwiftyJSON import SDWebImage import Photos class ViewController: UIViewController { @IBOutlet weak var serchTextField: UITextField! @IBOutlet weak var KensakuImage: UIImageView! var count = 0 var LikeImage = [UIImage]() override func viewDidLoad() { super.viewDidLoad() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.isNavigationBarHidden = true } //検索キーワードの値を元に画像を引っ張ってくる //pixabay.com func getImages(keyword:String){ //APIKEY 9848333-b62d95ad945f6aae7e4f88e49 let url = "https://pixabay.com/api/?key=19848333-b62d95ad945f6aae7e4f88e49&q=(keyword)" //alamofireを使ってhttpリクエストを投げる AF.request(url, method:.get, parameters: nil, encoding: JSONEncoding.default).responseJSON { (response) in switch response.result { case.success: let json:JSON = JSON(response.data as Any) var imageString = json["hits"][self.count]["webformatURL"].string if imageString == nil{ imageString = json["hits"][0]["webformatURL"].string self.KensakuImage.sd_setImage(with: URL(string: imageString!), completed: nil) }else{ self.KensakuImage.sd_setImage(with: URL(string: imageString!), completed: nil) } case.failure(let error): print(error) } } } @IBAction func serchButton(_ sender: Any) { self.count = 0 if serchTextField.text == ""{ getImages(keyword: "funny") }else{ getImages(keyword:serchTextField.text!) } } @IBAction func goodButton(_ sender: Any) { count = count + 1 print(count) LikeImage = KensakuImage //←の後なんて記述すれば上手くLikeImageに押下時の画像が入るのか // selectimages1.append() if count == 10 { // 10回押された時に遷移させる self.performSegue(withIdentifier: "nextVC", sender: nil) } if serchTextField.text == ""{ getImages(keyword: "funny") }else{ getImages(keyword:serchTextField.text!) } } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "nextVC"{ // segue.destination = 遷移先 // 遷移先 = GoodViewController let goodView = segue.destination as? GoodViewController // GoodViewControllerの中のselectimages print(KensakuImage) goodView?.selectimages = KensakuImage.image! } } @IBAction func badButton(_ sender: Any) { count = count + 1 if serchTextField.text == ""{ getImages(keyword: "funny") }else{ getImages(keyword:serchTextField.text!) } } } ```遷移先

import UIKit

class GoodViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {

@IBOutlet weak var tableView: UITableView! var selectimages = UIImage() override func viewDidLoad() { super.viewDidLoad() tableView.delegate = self tableView.dataSource = self print(selectimages) // Do any additional setup after loading the view. } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 10 } func numberOfSections(in tableView: UITableView) -> Int { return 1 } func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 390 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) let imageView = cell.contentView.viewWithTag(1) as! UIImageView imageView.image = selectimages return cell } @IBAction func backButton(_ sender: Any) { dismiss(animated: true, completion: nil) }

}

### 試したこと var LikeImage = [UIImage]()の画像が入る配列を作り ボタンが10回タップの時だけ入るようにしたかったので @IBAction func goodButton(_ sender: Any) { count = count + 1 print(count) LikeImage = KensakuImage //←の後なんて記述すれば上手くLikeImageに押下時の画像が入るのか 調べて入力したりするも上手く行かない 調べては書き直したりしているのでコードがめちゃくちゃになっておりますが、暖かい目でご回答いただけると幸いです。 ### 補足情報(FW/ツールのバージョンなど) Xcode 12.5 ios 14.6 ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/06/09 06:16

GoodViewController の cellForRowAt で、imageView に画像をセットする必要があるのでは。
skt9

2021/06/09 06:59

ご回答ありがとうございます どのように記述すればよろしいでしょうかご教授いただけると幸いです。
hoshi-takanori

2021/06/09 07:22

imageView.image = selectimages[indexPath.row]
skt9

2021/06/09 08:04

ありがとうございます。 記述は無事にできたのですが、やはり画像が渡らず画面遷移するだけでした...
hoshi-takanori

2021/06/09 08:18

あ、selectimages.append(contentsOf: selectimages ) ってことは、selectimages に selectimages の中身を追加している (つまり配列の内容が 2 倍になる) のですが、もともと selectimages は空なので、2 倍にしても空のままですね…。
skt9

2021/06/09 08:29

あっそうなんですね、すみません。 ぐちゃぐちゃなコードで… なるほど、勉強になります。 配列に画像の値を入れるにはここで記述するのは何が正解なのでしょうか…?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問