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

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

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

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

Q&A

解決済

2回答

6490閲覧

Swift:画像をsegueで遷移先へ表示させる際のコードを教えて下さい。

oyakata

総合スコア8

Swift

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

0グッド

1クリップ

投稿2017/03/02 18:42

・現在学習中の課題で、スライドショーアプリ作成におけるsegueによる画像の遷移元⇆遷移先のコードを書く必要があります。
※画像を自動再生するスライドショーアプリで、画像をタップすると遷移先の画面で拡大されたものが表示される仕様。

・xやyに数を代入させる計算ではsegueを経験しているのですが、画像のやりとりとなるとどのようにコードを書いていいのかわからず、色々な文字列を打って試しているのですが、何を打っても赤いアラートが出て困ってしまっています。
※下記コードで、遷移元(ViewController)のsegueの下のletから始まる部分の、遷移先に画像を送るコードと、遷移先(CloseUpViewController)で受け取るためのコードがわからずに困っています。

アドバイスをよろしくお願いします。

遷移元

import UIKit class ViewController: UIViewController { let image = ["画像0","画像1","画像2","画像3","画像4","画像5","画像6","画像7"] var timer:Timer? var counter:Int = 0 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } @IBOutlet weak var buttonPlayPause: UIButton! @IBOutlet weak var buttonBack: UIButton! @IBOutlet weak var buttonNext: UIButton! //再生ボタンを押した時のメソッド @IBAction func buttonPlayPause(_ sender: Any) { if self.timer != nil { buttonBack.setTitleColor(UIColor.darkGray, for: .normal) buttonNext.setTitleColor(UIColor.darkGray, for: .normal) buttonPlayPause.setTitle("Play", for: UIControlState.normal) timer?.invalidate() timer = nil } else { buttonPlayPause.setTitle("Pause", for: UIControlState.normal) timer = Timer.scheduledTimer(timeInterval: 2.0, target: self, selector: (#selector(play)), userInfo: nil, repeats: true) buttonBack.isEnabled = false //戻るボタンタップ不可 buttonBack.setTitleColor(UIColor.lightGray, for: .normal) buttonNext.isEnabled = false //次へボタンタップ不可 buttonNext.setTitleColor(UIColor.lightGray, for: .normal) } } //戻るボタンを押した時のメソッド @IBAction func buttonBack(_ sender: Any) { counter = counter - 1 //現在用意している画像が8枚なので、カウンターが-8より小さくなったら0になる if (counter < -7) { counter = 0 } imageView.image = UIImage(named:image[counter]) } //進むボタンを押した時のメソッド @IBAction func buttonNext(_ sender: Any) { //カウンターに1足して次の画像を表示させる counter = counter + 1 //現在用意している画像は8枚なので、カウンターが8より大きくなったら0になる if ( counter > 7 ) { counter = 0 } imageView.image = UIImage(named:image[counter]) } @IBOutlet weak var imageView: UIImageView! @IBAction func closeUp(_ sender: UIButton) { } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { let closeUpViewController:CloseUpViewController = segue.destination as! CloseUpViewController closeUpViewController.imageView = self.image } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated.

遷移先

import UIKit class CloseUpViewController: UIViewController { @IBOutlet weak var imageView: UIImageView! var Image = UIImage() //受け取るためのプロパティ override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }

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

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

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

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

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

guest

回答2

0

@IBOutletUIImafeViewを設定している場合は一旦UIImageを渡して、それを設定っしてください。

swift

1 2import UIKit 3 4class CloseUpViewContr: UIViewController { 5 @IBOutlet weak var imageView: UIImageView! 6 var image: UIImage! 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 11 imageView.image = self.image 12 } 13}

投稿2017/03/02 23:23

編集2017/03/03 00:48
_Kentarou

総合スコア8490

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

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

oyakata

2017/03/03 14:23

ありがとうございます。 このやり方もあるんですね。 試してみます!
guest

0

ベストアンサー

遷移先の変数名をimageViewにすれば良さそうな気が。

投稿2017/03/02 22:26

fuzzball

総合スコア16731

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

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

oyakata

2017/03/03 14:23

そこがよくわかってませんでした。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問