Получить индекс выбора UIAlertAction с динамическими элементами
Я строю динамический список действий. При нажатии на действие я хотел бы перейти к разделу в табличном представлении. Для этого я хотел бы знать выбранный индекс действия и заменить его в разделе кода: "inSection: 0". Есть ли способ сделать это?
Вот мой код:
let optionMenu = UIAlertController(title: nil, message: "Jump to", preferredStyle: .ActionSheet)
for item in items {
let action = UIAlertAction(title: item, style: .Default, handler: { (alert: UIAlertAction!) -> Void in
let indexPath = NSIndexPath(forRow: 0, inSection: 0)
self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: UITableViewScrollPosition.Bottom, animated: true)
})
optionMenu.addAction(action)
}
self.presentViewController(optionMenu, animated: true, completion: nil)
1 ответ
Решение
Вы можете использовать следующие enumerate
на основе цикла вместо:
for (index, item) in items.enumerate() {
let action = UIAlertAction(title: item, style: .Default, handler: { (alert: UIAlertAction!) -> Void in
let indexPath = NSIndexPath(forRow: 0, inSection: index) // <- index
self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: UITableViewScrollPosition.Bottom, animated: true)
})
optionMenu.addAction(action)
}