struct Objects {
var sectionName: String!
var sectionObjects: [String]!
}
var objectsArray = [Objects]()
////////////
override func viewDidLoad() {
super.viewDidLoad()
setupBluetooth()
objectsArray = [Objects(sectionName: "Peripherals", sectionObjects: []),
Objects(sectionName: "Peripherals Virtual", sectionObjects: [])]
}
////////////////////
extension ViewController: UITableViewDataSource, UITableViewDelegate {
func numberOfSections(in tableView: UITableView) -> Int {
return objectsArray.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return peripherals.count
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return objectsArray[section].sectionName
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: UITableViewCell = self.tableView.dequeueReusableCell(withIdentifier: "cell")! as UITableViewCell
let peripheral = peripherals[indexPath.row]
if peripheral.name == "" || peripheral.name == nil {
cell.textLabel?.text = String(describing: peripheral.identifier)
} else {
cell.textLabel?.text = peripheral.name
}
return cell
}
}
/////// 应用程序本身会搜索应出现在第一部分中的外围设备。但问题是它增加了那里的所有部分,但我只需要第一部分,我该怎么做?
答案 0 :(得分:0)
使用indexPath.section
处理特定部分内的项目
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: UITableViewCell = self.tableView.dequeueReusableCell(withIdentifier: "cell") as! UITableViewCell
if indexPath.section == 0 {
let peripheral = peripherals[indexPath.row]
if peripheral.name == "" || peripheral.name == nil {
cell.textLabel?.text = String(describing: peripheral.identifier)
} else {
cell.textLabel?.text = peripheral.name
}
return cell
} else {
// here handle other sections
}
}