Создайте перечисление для каждого SegmentedControls с помощью CaseIterable
enum Planet: String, CustomStringConvertible, CaseIterable {
case mercury, venus, earth, mars, jupiter, saturn, uranus, neptune
var description: String {
return self.rawValue.capitalized
}
}
и используйте массив Planet.allCases
для создания сегментов для сегментированного элемента управления
let segmentedControl = UISegmentedControl(items: Planet.allCases)
или
Planet.allCases.enumerated().forEach {
segmentedControl.insertSegment(withTitle: $1, at: $0, animated: true)
}
При изменении выбора в элементе управления сегментом сохраните выбранный индекс в основных данных.
@objc func indexChanged(_ sender: UISegmentedControl) {
print(Planet.allCases[sender.selectedSegmentIndex])
//save sender.selectedSegmentIndex in core data
}
Если вы хотите отобразить выбранные заголовки в другом представлении, получите выбранные индексы из основных данных.И получить соответствующее строковое значение из массива Enum.allCases
let selectedPlanetIndex = 5//Index fetched from core data
let selectedPlanetTitle = Planet.allCases[selectedPlanetIndex]//saturn