2017-01-20 7 views
1

関数 "Savedata"が呼び出された場合、[UIbutton]に新しいボタンを追加し、配列[[Double]]に新しい要素を追加します。 index [i]のすべてのボタンがindex [i]の配列[[Double]]にデータを表示したいと思います。どのようにループを行うのですか?ボタンの配列Swift 3

@IBAction func Savedata(_ sender: Any) { 

    subjectsznamky.insert(arrayx, at: 0) //subjectsznamky is the [[Double]] array 

var button : UIButton 
      button = UIButton(type: .system) as UIButton 
      button.frame = CGRect(x:5, y: 20, width: 100.0, height: 30) 
      button.setTitle(ourname, for: .normal) 
      self.view.addSubview(button) 
      buttons.append(button) 

    for i in buttons.indices { 
       buttons[i].frame.origin.y += 30 
       buttons[i].addTarget // here I need to create the function, that every button on index [i] displays data in subjectsznamky on index[i] 


} 

ありがとうございます。

+0

「データの表示」ボタンとはどういう意味ですか? – Frankie

+0

VCのラベルにデータを表示することを意味します –

+0

要素0の配列に挿入する必要がありますか?あなたはちょうど追加できますか?追加できるのであれば、ボタンの 'tag'フィールドを使って、一致する配列インデックスを保存することができます。ボタンがタップされたら、 'sender'ボタンの' tag'を参照し、配列を参照してください。 –

答えて

1

これは、アプリケーションのビューやデータを管理する理想的な方法ではない可能性があります。代わりにUITableViewと考えるべきです。

...

たぶんあなたの代わりに別の配列の辞書にあなたのボタンと値を追跡する、このような何かを試すことができます言われていること。注文を保存しようとしているのであれば、まだあなたのボタン用の配列が必要です。

var hashes = [UIButton : [Double]]() 
var buttons = [UIButton]() 

@IBAction func saveData(_ sender: Any) { 

    var button = UIButton(type: .system) 
    button.frame = CGRect(x:5, y: 20, width: 100.0, height: 30) 
    button.setTitle(ourname, for: .normal) 
    self.view.addSubview(button) 
    buttons.append(button) 

    hashes[button] = arrayx 

    for button in buttons { 
     button.frame.origin.y += 30 
     button.addTarget(self, action: #selector(MyClass.disaplayData(_:)), for: .touchUpInside) 
    } 
} 

func displayData(_sender: UIButton) { 
    if let doubleArray = hashes[sender] { 
     print(doubleArray) 
    } 
} 
+0

働いていただきありがとうございます –

関連する問題