名前または値でテーブルを並べ替えることができるように、変更された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()
}
インデックス 1 を選択すると、アプリは正常に動作しますが、インデックス 0 を選択するとUITextField
、他のセルをクリックするか、更新のためにテーブルをプルダウンした場合にのみアクションが実行されます (ちなみに、更新するために実装されていません)。 )
不足しているものはありますか?それは本当にぎこちなく感じるからです。