Сегментированный элемент управления определяется как вычисляемое свойство , которое создает новый экземпляр UISegmentedControl
со значением selectedSegmentIndex
, равным 0, при каждом обращении к нему. Попробуйте вместо этого использовать закрытие инициализации свойства:
let segmentedControl: UISegmentedControl = {
let sc = UISegmentedControl(items: items)
sc.selectedSegmentIndex = 0
sc.addTarget(self, action: #selector(handleSegmentChange), for: .valueChanged)
return sc
}()