Получить индекс выбора 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)
}
Другие вопросы по тегам