У меня есть ViewController со слоистым видом контейнера в нем, наряду с этим SegmentedController кодом:выбор сегмента UISegmentedController вне поля зрения контроллера
@IBOutlet weak var dayPicker: UISegmentedControl!
@IBAction func dayPickerControl(sender: UISegmentedControl) {
switch dayPicker.selectedSegmentIndex {
case 0:
monContainer.hidden = false
tuesContainer.hidden = true
wedContainer.hidden = true
thursContainer.hidden = true
friContainer.hidden = true
satContainer.hidden = true
sunContainer.hidden = true
case 1:
monContainer.hidden = true
tuesContainer.hidden = false
wedContainer.hidden = true
thursContainer.hidden = true
friContainer.hidden = true
satContainer.hidden = true
sunContainer.hidden = true
case 2:
monContainer.hidden = true
tuesContainer.hidden = true
wedContainer.hidden = false
thursContainer.hidden = true
friContainer.hidden = true
satContainer.hidden = true
sunContainer.hidden = true
case 3:
monContainer.hidden = true
tuesContainer.hidden = true
wedContainer.hidden = true
thursContainer.hidden = false
friContainer.hidden = true
satContainer.hidden = true
sunContainer.hidden = true
case 4:
monContainer.hidden = true
tuesContainer.hidden = true
wedContainer.hidden = true
thursContainer.hidden = true
friContainer.hidden = false
satContainer.hidden = true
sunContainer.hidden = true
case 5:
monContainer.hidden = true
tuesContainer.hidden = true
wedContainer.hidden = true
thursContainer.hidden = true
friContainer.hidden = true
satContainer.hidden = false
sunContainer.hidden = true
case 6:
monContainer.hidden = true
tuesContainer.hidden = true
wedContainer.hidden = true
thursContainer.hidden = true
friContainer.hidden = true
satContainer.hidden = true
sunContainer.hidden = false
default:
break;
}
Как я могу выбрать определенный сегмент от другого контроллера представления, так что, когда я вернусь к этому Просмотр видимого контейнера является видимым и выбран соответствующий сегмент?
Этот вид работы. Я говорю по следующим причинам: 1) UserState.sharedInstance(). SelectedDay создает ошибку, но если я удалю(), ошибка будет исправлена. Нет, biggie. 2) Теперь выбран правильный сегмент, но правильный вид не отображается. например, если я хочу, чтобы выбранный сегмент Wed отображался, и соответствующее видное изображение Wed было видимым, сегмент отображается как выбранный, но представление не отображается. Если я затем нажму другой сегмент, а затем вернусь назад, он покажет правильный вид, но он не будет загружаться таким образом. – Colin
PS - попробовал это в обоих направлениях: так, как раньше, и так, как вы предложили - monContainer.hidden = (segmentIndex! = 0) tuesContainer.hidden = (segmentIndex! = 1) wedContainer.hidden = (segmentIndex! = 2) thursContainer.hidden = (segmentIndex! = 3) friContainer.hidden = (segmentIndex! = 4) satContainer.hidden = (segmentIndex! = 5) sunContainer.hidden = (segmentIndex! = 6) – Colin
К сожалению о дополнительные parens, я скопировал этот синглтон-код откуда-то и не понял, что они используют var вместо метода. Вам нужно добавить 'dayPicker.selectedSegmentIndex = UserState.sharedInstance.selectedDay' to 'viewDidLoad' или' viewWillAppear' в любом контроллере вида, который имеет сегментированный элемент управления для правильного заполнения. Думаю, вы просто добавили его в контроллер просмотра, с которого вы возвращались. – bjtitus