我创建了一个自定义单元格来替换UITableViewSectionHeader
一个协议来处理何时UISegmentedControl.index
更改,这样我就可以按名称或值对表进行排序:
import UIKit
protocol OrdenarTableViewDelegate {
func ordenarTableView(cell: OrdenarTableViewCell)
}
class OrdenarTableViewCell: UITableViewCell {
var delegate: OrdenarTableViewDelegate?
@IBOutlet weak var segmentedOrdenar: UISegmentedControl!
@IBAction func alteraOrdenacao(sender: UISegmentedControl) {
delegate?.ordenarTableView(self)
}
在 UITableViewControler 我引用了协议
class SelecionadasTableViewController: UITableViewController, UITextFieldDelegate, OrdenarTableViewDelegate {
并实施它:
// MARK: - Ordenar Delegate
func ordenarTableView(cell: OrdenarTableViewCell) {
if cell.segmentedOrdenar.selectedSegmentIndex == 0 {
listaCervejas = bancoDeDados.selecionaCervejas(false)
} else {
listaCervejas = bancoDeDados.selecionaCervejas(true)
}
ordenarCervejas = cell.segmentedOrdenar.selectedSegmentIndex
tableView.reloadData()
}
When I select the index 1, the app works just fine, but when index 0 is selected the action is only performed if click on a UITextField
on any other cell or I pull the table down for refreshing (which by the way is not implemented to refresh )
有什么我想念的吗?因为感觉真的很尴尬。