2017-01-20 8 views
1

함수 "Savedata"가 호출되면 [UIbutton]에 새 버튼을 추가하고 [[Double]] 배열에 새 요소를 추가합니다. index [i]의 모든 버튼이 인덱스 [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

일했습니다. 감사합니다. –