2016-06-10 2 views
0

У меня есть сегментированный элемент управления, который прекрасно работает, если вы нажимаете один из сегментов, но если вы ничего не нажимаете и не позволяете ему сидеть в естественном месте отдыха, который является первым сегментом, он не работаетБыстрое сегментированное состояние управления по умолчанию

Я испытал это, нажав другой сегмент и продолжить приложение, и она работала, и я также протестировал, нажав на другой сегмент, а затем вернуться к первому сегменту, и она работала

@IBAction func segmentedControl(sender: UISegmentedControl) { 

    switch segmenControl.selectedSegmentIndex { 

    case 0: 
     numberOfParticipants = "4" 
    case 1: 
     numberOfParticipants = "6" 
    case 2: 
     numberOfParticipants = "8" 
    case 3: 
     numberOfParticipants = "10" 
    case 4: 
     numberOfParticipants = "12" 
    case 5: 
     numberOfParticipants = "14" 
    case 6: 
     numberOfParticipants = "16" 
    default: 
     break 
    } 


} 

это имеет смысл, так как она обернута в IBAction и ничего не нажимается, поэтому он не срабатывает. Как исправить эту проблему?

Редактировать

К не работает я имею в виду, если сегмент, который подсвечивается говорит 4 и пользователь нажимает кнопку продолжить (разные кнопки), то переменная получает обновленную со строкой «4» и то firebase обновляется, чтобы сказать x = 4

Так что происходит, когда вы приземляетесь на страницу по умолчанию, сегмент 4 выделен, и если вы хотите, чтобы 4 был вашим вариантом, вы оставите его в покое и нажмите кнопку продолжения ... моя проблема в том, что если вы не взаимодействуете с элементом управления сегментом и на самом деле нажимаете 4, тогда код никогда не запускается, но если вы нажмете 6, а затем на 4, он вызовет

+0

Какой вопрос? Как вы сами сказали, если пользователь ничего не нажимает, ничего не происходит. В чем проблема? (Я не понимаю, я действительно не понимаю. Фраза «если вы ничего не нажимаете и не позволяете ей сидеть в естественном месте отдыха, это первый сегмент, который он не работает» ничего не говорит мне, что будет «работать» _mean_ здесь?) – matt

+0

Я обновил свой вопрос ... в основном в зависимости от того, какой сегмент выделен, когда вы нажимаете код кнопки продолжения, отправляется в firebase ... так как никакого взаимодействия с сегментом не происходит, если вы хотите значение по умолчанию должно быть 4, код не запускается ... Я надеюсь, что он очистит его – RubberDucky4444

+1

Похоже, вам нужно определить значение по умолчанию для numberOfParticipants в случае, если никакая вкладка не нажата. –

ответ

2

Ваши вопросы не очень ясны в определении того, что именно кажется сломанным. Что не работает, если вы не используете его? В общем, в использовании UISegmentedControls есть 2 этапа. На шаге 1 вы установите его в инициализации - т.е. viewDidLoad - через:

segmenControl.selectedSegmentIndex = your_initial_value 

Конечно ваше начальное значение не может быть numberOfParticipants, поскольку управление имеет только 6 значений ..

Тогда шаг 2 является то, как ваш IBAction, который выглядит хорошо. Ваше использование магических чисел, конечно, немного проблематично.

+0

Что вы имеете в виду, когда говорите магические числа? Я обновил свой вопрос – RubberDucky4444

+0

Да, я видел и сбивался с толку:] Вы не упоминали ни о каких кнопках продолжения, огневой базе или любом из них в своем исходном вопросе. В любом случае, похоже, вы полагаетесь на свой сегментированный элемент управления, чтобы инициализировать вещи. Но это должно быть наоборот. У вас должен быть по умолчанию, для которого вы инициализируете свой сегментированный элемент управления, и это значение должно также регулировать другие части вашего кода, которые в настоящее время не работают. BTW: Магическое число означает прямое использование числа в коде. – caxix

1

Вот как я понимаю вопрос: У вас есть кнопка «Продолжить», и если вы нажмете ее, вы хотите, чтобы она отражала состояние сегментированного элемента управления. Верный?

Если это так, вам не нужен IBAction, просто прочитайте segmentControl.selectedSegmentIndex непосредственно в кнопке IBAction для продолжения.

 Смежные вопросы

  • Нет связанных вопросов^_^