Выполните этот шаг: -
1 - Создайте UISegmentedController с индексом двух сегментов, одним из которых является Boarding, а вторым Dropping
2 - Создайте third array of your model
в вашем контроллере
var arrPoints = [SBDropPickPoint]()
3 - Добавить целевой метод сегментированного контроллера в метод viewDidLoad и назначить первый массив arrPoints и указать, какой сегмент выбран первым.
arrPoints = arrBoardPoints
segmentedController.selectedSegmentIndex = 0
segmentedController.addTarget(self, action: #selector(segmentedControllerValueChanged(sender:)), for: .valueChanged)
4 - Добавьте код в целевой метод сегментированного контроллера, какой список массивов вы хотите отобразить, а затем перезагрузите просмотр таблицы.
@objc func segmentedControllerValueChanged(sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
arrPoints = arrBoardPoints
case 1:
arrPoints = arrDropPoints
default:
print("Invalid")
}
tableView.reloadData()
}
5 - В вашем источнике данных tableview и методе delgate используйте массив модели arrPoints для отображения списка.
extension ControllerName: UITableViewDataSource, UITableViewDelegate {
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrPoints.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "DroppingCell") as! DroppingCell
cell.lblDrop.text = arrPoints[indexPath.row].title
cell.lblAddress.text = arrPoints[indexPath.row].address
cell.lblTime.text = arrPoints[indexPath.row].time
return cell
}
}