2017-01-20 3 views
1

Si la fonction "Savedata" est appelée, j'ajoute un nouveau bouton dans [UIbutton] et j'ajoute un nouvel élément dans le tableau [[Double]]. Je veux, pour chaque bouton sur l'index [i] afficher les données dans le tableau [[Double]] sur l'index [i]. Comment dois-je faire la boucle?Tableau de boutons 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] 


} 

Merci.

+0

Qu'entendez-vous par «affichage des données»? – Frankie

+0

Je veux dire d'afficher les données dans l'étiquette dans VC –

+0

Avez-vous à insérer dans le tableau à l'élément 0? Pouvez-vous simplement ajouter? Si vous pouvez simplement ajouter, vous pouvez utiliser le champ "tag" des boutons pour stocker l'index du tableau correspondant. Quand un bouton est appuyé, regardez le 'tag' du bouton' sender' et la référence dans le tableau. –

Répondre

1

Ce n'est probablement pas un moyen idéal de gérer vos vues ou d'afficher des données dans votre application. Vous devriez envisager un UITableView à la place.

Cela dit ...

Peut-être que vous pouvez essayer quelque chose comme ça, garder une trace de vos boutons et des valeurs dans un dictionnaire au lieu d'un tableau séparé. Vous auriez toujours besoin d'un tableau spécifique pour vos boutons si vous essayez de préserver l'ordre.

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

travaillé, merci –