2017-03-23 2 views
0

ローカルJsonファイルにImageとDescriprion(テキスト)という2セットのデータが入っています。私は乱数を生成していますが、この数で関数はJsonから画像を返します。また、別のUIButtonを取得して、説明を表示する必要があるアラートビューを作成します。 @IBAction funcで同じ乱数を呼び出して、この番号を同期させて説明を取得することはできません。どんな種類の解決策であれ、それを使うのはうれしいです! Thnxたくさん。 は、相続人のコード:別の関数で生成された乱数を別の@IBAction funcに同期させる方法

@IBAction func ButtonAction(_ sender: UIButton) { 

    let appearance = SCLAlertView.SCLAppearance(
     kTitleFont: UIFont(name: "HelveticaNeue", size: 20)!, 
     kTextFont: UIFont(name: "HelveticaNeue", size: 14)!, 
     kButtonFont: UIFont(name: "HelveticaNeue-Bold", size: 14)!, 
     showCloseButton: false 
    ) 

    let alert = SCLAlertView(appearance: appearance) 

    let subview: UIView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 70)) 
    let x = (subview.frame.width - 180)/2 

    let textfield1 = UILabel(frame: CGRect(x: x, y: 10, width: 180, height: 25)) 

    textfield1.text = people[randomIndex].text 
    print(randomIndex) 

} 

答えて

0

あなたが機能してvariableを作成するために必要なすべての最初の:私は同じ生成された乱数を使用したい

func popCardViewWithFrame(_ frame : CGRect) -> UIView? { 

    let randomIndex = Int(arc4random_uniform(36) + 1) 

    let imageView = UIImageView() 

    imageView.image = UIImage(named: people[randomIndex].image 
    print(randomIndex) 
    return imageView 

} 

HERESに@IBActionのFUNC。これは、必要があることを次のようになります。

var randomNumberCompletion: ((Int) ->())?

を、その後、乱数がdeclaratedされた使用のaferこのように、この完了ブロック:

func popCardViewWithFrame(_ frame : CGRect) -> UIView? { 

    let randomIndex = Int(arc4random_uniform(36) + 1) 
    randomNumberCompletion?(randomIndex) 
    let imageView = UIImageView() 

    imageView.image = UIImage(named: people[randomIndex].image 
    print(randomIndex) 
    return imageView 

} 

、その後を@IBAction funcコールこのように、この完了ブロックで:

@IBAction関数ButtonAction(_送付者:UIButton){

let appearance = SCLAlertView.SCLAppearance(
    kTitleFont: UIFont(name: "HelveticaNeue", size: 20)!, 
    kTextFont: UIFont(name: "HelveticaNeue", size: 14)!, 
    kButtonFont: UIFont(name: "HelveticaNeue-Bold", size: 14)!, 
    showCloseButton: false 
    ) 

    let alert = SCLAlertView(appearance: appearance) 

    let subview: UIView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 70)) 
    let x = (subview.frame.width - 180)/2 

    let textfield1 = UILabel(frame: CGRect(x: x, y: 10, width: 180, height: 25)) 
    randomNumberCompletion = { [unowned self] randomNumber in 
     self.textfield1.text = randomNumber 
    } 
    textfield1.text = people[randomIndex].text 
    print(randomIndex) 
+0

答えがたくさんThnxですが、Imは@IBAction funcにエラーが発生しています。タイプ 'ViewController'の値にメンバー 'textfield1'がありません。 – SunCode

関連する問題