Если вы не используете раскадровки и хотите установить индекс по умолчанию после некоторой настройки / работы в сети, как я, этот маленький фрагмент кода выберет что-то, если пользователь этого не сделал. Я поместил это в мой подкласс UISegmentedControl
, но вы можете разместить это где угодно. ( Swift 3 )
Decl: var UISegmentedControlNoSegment: Int { get }
Desc: A segment index value indicating that there is no selected segment. See selectedSegmentIndex for further information.
Короткая версия:
if selectedSegmentIndex == UISegmentedControlNoSegment {
selectedSegmentIndex = initialIndex
}
Более длинная версия
func reloadData() {
guard let numberOfItems = dataSource?.numberOfItems() else {
return
}
removeAllSegments()
for index in 0...numberOfItems {
insertSegment(with: $image, at: index, animated: false)
}
if selectedSegmentIndex == UISegmentedControlNoSegment {
selectedSegmentIndex = initialIndex
}
}