2017-05-11 10 views
0

ボタンを押したときに同じ次のviewcontrollerで異なる画像を表示する方法。ボタンをすばやく押すと、次の画像に異なる画像を表示しますか?

最初のボタンを押すと1つのイメージが表示され、2番目のボタンを押すと別のイメージが2番目のビューコントローラに表示されます。

これは、3つの異なるビューコントローラを使用し、segueを使用することで、多数のビューコントローラを追加するのを避けることによって行うことができます。同じビューコントローラで表示したいです。

ありがとうございます。

+0

UIPagingControllerを使用する方がよいでしょうか? – Scriptable

+0

最初のボタンを押すと1つの画像が表示されて最初のビューに戻り、2番目のボタンを押すと同じ2番目のビューに移動する必要があるため、別の画像が表示されるはずはないと思います。 –

+0

なぜ新しいViewControllerが必要ですか?同じViewController内のUIImageViewのイメージを変更するだけです。 –

答えて

2

元の表示コントローラーのprepareに、次の表示コントローラーに表示する画像の名前を設定します。

次のビューコントローラーでは、その名前と名前を読み、そこからUIImageを作成します。

起源VC:

var imageToLoad : String = "" 

@IBAction func btnA(_ sender: UIButton) { 
    imageToLoad = "imageA" 
} 

@IBAction func btnB(_ sender: UIButton) { 
    imageToLoad = "imageB" 
} 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if let destinarionVC = segue.destination as! NEXT_VIEW_CONTROLLER { 
    destinarionVC.imageName = self.imageToLoad 
    } 
} 

次VC:

var imageName : String = "" 
var image : UIImage 

override func viewDidLoad() { //Or wherever you need it to be 
    image = UIImage(name: imageName) 
} 
+0

のコード例を教えてください。 –

+0

完了...次のVCで必要な場所に必ずイメージを使用してください。必ずしも2番目の行のviewDidLoad –

+0

ではなく、erroeを準備してから使用してください。条件付きバインディングのinitilaizerはオプションでなければなりません。 Second Viewでは、私はuiimageの代わりにUIImageviewを持っています。私はボタンをクリックすると、次のビューに移動するために、インデントされたセグを実行しました。 –

0

あなたは、単一のビューコントローラを使用してアニメーションを変更することができます

https://github.com/ermalkaleci/CarbonKit

をCarbonkit Framworkを使用してみてください、それは感じています別のビューコントロールに移動するようなものです。実際には別のView Controllerに移動しますが、以前と同じView Controllerです。

関連する問題