勉強した後、研究とアウトソーシングで私の問題を理解することができませんでした:(私は現在、値を渡しながらビューを見るためにセグに慣れようとしています。画像を渡して表示する
マイアプリは、このようなビュー負荷と一つアクションbuttonthatがセグエプリフォーム機能を使用して、次のビューにビューセグエをトリガするとき、ランダムに画像を吐き出す一方の画像アレイ付き...最初のページである。
第2のページは、元のビュー画像アレイからのランダムに渡された画像に依存して変化しなければならない解消ボタンおよび画像ビューを含む。
ランダムに渡された画像が見えないことを除いて、すべて正常に動作します。以下は
私のコードです:私はseguesでsender
パラメータを使用する方法はありません
ページ1
import UIKit
class MainWelcomVC: UIViewController {
var ImageArr = [UIImageView]()
@IBOutlet weak var BackGround: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
for x in 0...2 {
let image = UIImage(named: "char\(x).png")
let imageview = (UIImageView(image: image))
ImageArr.append(imageview)
}
}
@IBAction func PlayButtonPressed(_ sender: Any) {
let randomIndex = Int(arc4random_uniform(UInt32(ImageArr.count)))
let CharImage = ImageArr[randomIndex]
performSegue(withIdentifier: "CharDisplayVC", sender: CharImage)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destination = segue.destination as? CharDisplayVC{
if let ImageFinal = sender as? UIImage {
destination.ImageToDisplay = ImageFinal
}
}
}
}
PAGE2
import UIKit
class CharDisplayVC: UIViewController {
private var _ImageToDisplay: UIImage!
var ImageToDisplay: UIImage {
get {
return _ImageToDisplay
} set {
_ImageToDisplay = newValue
}
}
@IBOutlet weak var CharPicture: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
CharPicture.image = _ImageToDisplay
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func PlayAgainBtnPressed(_ sender: Any) {
dismiss(animated: true, completion: nil)
}
}
それでも私にImageFinal = CharImageとして許可すれば CharImage = ImageArr [randomIndex] と にUIImageビューにUIImageを割り当てることはできませんの問題を与える: 'UIImage !?'」以下のコードでは、へ? UIImage –
'self.CharImage = ImageArr [randomIndex]'を 'self.CharImage = ImageArr [randomIndex] .image'に更新しました。私の謝罪はそれを逃した。今はうまくいくはずです。 –
yes thanxこれもうまくいったけど、配列や他の行を変更することで動作するようにしました。あなたは私の答えのコードをチェックし、それが良い方法であるかどうか教えていただけますか?また、私はUIイメージビューとUIimage –