Здесь - мое меню. Первоначально я начал с одного раздела в моем tableView
меню и использовал enum
для заполнения ячеек. Теперь я хочу добавить больше разделов. Я пытаюсь использовать вложенные enum
с. Я нашел этот ответ и этот ответ , которые показали мне, как реализовать вложенный enum
.
Это моя попытка. Case A
для section
1 в таблице, Case B
для section
2 и т. Д .:
enum MenuOption {
case Section0(A) // for tableView section 0
case Section1(B) // for tableView section 1
case Section2(C) // for tableView section 2
enum A: Int, CaseIterable, CustomStringConvertible {
case Categories
case Favourites
case Search
var description: String {
switch self {
case .Categories: return "Categories"
case .Favourites: return "Favourites"
case .Search: return "Search"
}
}
}
enum B: Int , CaseIterable, CustomStringConvertible {
case Notifications
case RateThisApp
var description: String {
switch self {
case .Notifications: return "Notifications"
case .RateThisApp: return "Rate This App"
}
}
}
enum C: Int , CaseIterable, CustomStringConvertible {
case Developer
var description: String {
switch self {
case .Developer: return "App Developer"
}
}
}
}
Для моего tableView
в cellForRowAt
я бы использовал что-то вроде этого
cell.descriptionLabel.text = MenuOption.A(rawValue: indexPath.row)?.description
А в numberOfRowsInSection
я бы вернул MenuOption.A.allCases.count
Но я не хочу A
. Мне нужно определить, что A
предназначено для section 0
, B == section 1
, C == section 2
и т. Д., Но я не знаю, как связать дела enum
с секциями tableView
.
Эта статья о «Перечислении перечислений в Swift» заставляет меня думать, что то, что я пытаюсь сделать, возможно, но опять же, я борюсь с реализацией и сейчас не уверен, стоит ли это делать. Я считаю, что мне нужно " синтезировать соответствие CaseIterable " для моего MenuOption enum
Любая помощь приветствуется.