Я использую HMSegmentedControl
. когда я запускаю табличное представление показывает пустое, когда я нажимаю на index 1
, тогда табличное представление показывает .. теперь, когда я перешел к index 0
показываются значения табличного представления. Почему изначально я не получаю данные просмотра таблицы в index 0
.
, вот код:
import UIKit
import HMSegmentedControl
class PlansPrepaidViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
let segmentedControl = HMSegmentedControl(sectionTitles: ["POPULAR", "SPECIAL RECHARGE", "TOP UP", "2G/3G/4G DATA", "FULL TALKTIME", "ROAMING"])
var sortedArray = [Any]()
let talktimeArray = ["26.66", "500.00","26.66", "500.00","26.66", "500.00","26.66", "500.00"]
let validityArray = ["42 Days", "28 Days", "52 Days", "18 Days", "76 Days", "23 Days", "42 Days", "120 Days"]
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
designSegmentedControl()
}
//for segment
func designSegmentedControl(){
segmentedControl?.frame = CGRect(x: 10, y: 60, width: 500, height: 60)
segmentedControl?.backgroundColor = UIColor(red: 4/255, green: 118/255, blue: 208/255, alpha: 1.0)
segmentedControl?.selectionIndicatorLocation = .down
segmentedControl?.selectionIndicatorHeight = 2.5
segmentedControl?.indexChangeBlock = { index in
print(index)
if index == 0{
self.sortedArray = self.validityArray.sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedAscending }
print("segmnent 0 \(self.sortedArray)")
}
if index == 1{
self.sortedArray = self.validityArray.sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedDescending }
print("segmnent 1 \(self.sortedArray)")
}
if index == 2{
self.sortedArray = self.validityArray.sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedSame }
print("segmnent 1 \(self.sortedArray)")
self.tableView.reloadData()
}
if index == 3{
self.sortedArray = self.validityArray.sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedAscending }
print("segmnent 1 \(self.sortedArray)")
self.tableView.reloadData()
}
}
self.view.addSubview(segmentedControl!)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return sortedArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! PlansTableViewCell
cell.layoutIfNeeded()
cell.containerView.dropShadow()
cell.talktimeLabel.text = talktimeArray[indexPath.row]
cell.validityLabel.text = sortedArray[indexPath.row] as? String
return cell
}
}