2017-01-20 6 views
1

Если функция «Savedata» вызывается, я добавляю новую кнопку в [UIbutton] и добавляю новый элемент в массив [[Double]]. Я хочу, чтобы каждая кнопка в индексе [i] отображала данные в массиве [[Double]] по индексу [i]. Как мне сделать цикл?Массив кнопок 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» кнопок, чтобы сохранить соответствующий индекс массива. Когда кнопка нажата, посмотрите на «тег» кнопки «отправитель» и ссылку в массив. –

ответ

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

работал, спасибо –

Смежные вопросы