CaseIterable 를 채택해주면 모든 케이스를 리턴해줄 수 있다.
소스코드
import Foundation
// 이 프로퍼티가 리턴해주는 모든 case들을 사용할 수 있게 해줌.
enum MenuSection: String, CaseIterable {
case ongoing = "Ongoing"
case done = "Done"
}
import UIKit
class TasksViewController: UIViewController {
@IBOutlet weak var menuSegmentedControl: UISegmentedControl!
override func viewDidLoad() {
super.viewDidLoad()
setupSegmentedControl()
}
private func setupSegmentedControl() {
// 모든 세그먼트들을 지워준다.
menuSegmentedControl.removeAllSegments()
// 미리 선언해둔 Enum에 접근.모든케이스.enumerated()는 모든 인덱스를 리턴해준다.
// 인덱스에 접근하여 세그먼트에 문자열을 insert
MenuSection.allCases.enumerated().forEach { (index, section) in menuSegmentedControl.insertSegment(withTitle: section.rawValue, at: index, animated: false)}
// 초기 시작상태를 0번 째 인덱스로 두고 시작한다.
menuSegmentedControl.selectedSegmentIndex = 0;
}
}