2017-01-20 6 views
1

Wenn die Funktion "Savedata" aufgerufen wird, füge ich neue Schaltfläche in [UIbutton] hinzu und füge ein neues Element in das Array [[Double]] ein. Ich möchte, dass jede Taste auf Index [i] Daten in Array [[Double]] auf Index [i] anzeigt. Wie soll ich die Schleife machen?Array von Schaltflächen 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] 


} 

Vielen Dank.

+0

Was meinen Sie mit dem Button 'Daten anzeigen'? – Frankie

+0

Ich meine, um die Daten in Label in VC anzuzeigen –

+0

Müssen Sie in das Array bei Element 0 einfügen? Kannst du einfach anhängen? Wenn Sie nur anhängen können, können Sie das Tag-Feld der Schaltfläche verwenden, um den übereinstimmenden Array-Index zu speichern. Wenn eine Schaltfläche angetippt wird, sehen Sie sich das 'tag' der' sendenden' Schaltfläche an und verweisen Sie auf das Array. –

Antwort

1

Dies ist wahrscheinlich kein idealer Weg, um Ihre Ansichten zu verwalten oder Daten in Ihrer Anwendung anzuzeigen. Sie sollten stattdessen eine UITableView betrachten.

Davon abgesehen ...

Vielleicht können Sie so etwas wie dies versuchen, Ihre Tasten und Werte in einem Wörterbuch anstelle eines separaten Array zu verfolgen. Sie benötigen jedoch immer noch ein Array speziell für Ihre Schaltflächen, wenn Sie versuchen, die Ordnung zu erhalten.

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

hat funktioniert, danke –

Verwandte Themen