Вы можете сделать перечисление вот так
enum sectionsTable:Int, CaseIterable
{
case sectionTableOne
case sectionTableTwo
var titleSectionTable: String {
switch self {
case .sectionTableOne:
return "titleSectionTableOne"
case .sectionTableTwo:
return "titleSectionTableTwo"
}
}
}
enum cellSectionOne:Int, CaseIterable
{
case cellOne
case cellTwo
var titleCellSectionOne:String
{
switch self {
case .cellOne:
return "cellOne"
case .cellTwo:
return "cellTwo"
}
}
}
enum cellIconSectionOne:Int, CaseIterable {
case cellOneIcon
case cellTwoIcon
var icon: UIImage {
switch self {
case .cellOneIcon:
return UIImage(named: "iconOne.png")!
case .cellTwoIcon:
return UIImage(named: "iconTwo.png")!
}
}
}
enum cellSectionTwo:Int, CaseIterable
{
case cellOne
case cellTwo
var titleCellSectionTwo:String
{
switch self {
case .cellOne:
return "cellOne"
case .cellTwo:
return "cellTwo"
}
}
}
enum cellIconSectionTwo:Int, CaseIterable {
case cellOneIcon
case cellTwoIcon
var icon: UIImage {
switch self {
case .cellOneIcon:
return UIImage(named: "iconOne.png")!
case .cellTwoIcon:
return UIImage(named: "iconTwo.png")!
}
}
}
и использовать вот так
extension DetailViewController: UITableViewDataSource, UITableViewDelegate {
func numberOfSections(in tableView: UITableView) -> Int {
return sectionsTable.allCases.count
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
sectionsTable.init(rawValue: section)?.titleSectionTable
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0 {
return cellSectionOne.allCases.count
}
else {
return cellSectionTwo.allCases.count
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
if indexPath.section == 0 {
cell.textLabel?.text = cellSectionOne.init(rawValue: indexPath.row)?.titleCellSectionOne
}
else {
cell.textLabel?.text = cellSectionTwo.init(rawValue: indexPath.row)?.titleCellSectionTwo
}
return cell
}
}