2016-07-20 3 views
0

У меня есть UITableView в UIViewController. Есть две пользовательские ячейки. Один из них имеет UISegmentedControl.Swift - Как получить выбранный сегмент управления, встроенный в ячейку UITableView?

enter image description here

До сих пор, так хорошо.

Когда я нажимаю элемент управления, изменяется сегментированное значение управления и функция IBAction работает, как ожидалось.

Проблема в том, что выбранный индекс всегда отображается как -1, (иначе ничего не выбрано).

Что мне здесь не хватает?

Вот код для изменения значения:

@IBAction func recurranceChanged(sender: UISegmentedControl?) { 

     print ("index: ", recurrenceControl.selectedSegmentIndex) << This returns -1 

     if recurrenceControl.selectedSegmentIndex == 0 { 
      print("No ") 
     } 

     if recurrenceControl.selectedSegmentIndex == 1 { 
      print("Sometimes ") 

     } 


     if recurrenceControl.selectedSegmentIndex == 2 { 
      print("Yes") 

     } 

    } 
+1

Вы пытались использовать 'sender', а не' recurrenceControl'? – OOPer

+0

Вот и все .. Если вы хотите сделать это, я закрою это. BTW .. Для других код должен быть 'sender? .selectedSegmentIndex' –

+0

Вы можете отправить ответ на свой вопрос. «BTW», в методах действий вам не нужно использовать опцию, объявите параметр как 'sender: UISegmentedControl' (no'? ') И используйте как' sender.selectedSegmentIndex'. – OOPer

ответ

0

Try это: (также удалил из UISegmentedControl, как он не нужен? ».)

@IBAction func recurranceChanged(sender: UISegmentedControl) { 

    print ("index: ", sender.selectedSegmentIndex) 

    if sender.selectedSegmentIndex == 0 { 
     print("No ") 
    } 

    if sender.selectedSegmentIndex == 1 { 
     print("Sometimes ") 

    } 


    if sender.selectedSegmentIndex == 2 { 
     print("Yes") 

    } 

} 

это должно решить проблема;)

+0

Большое спасибо. Perfect –

+0

даже вы можете получить титул «segment.titleForSegment (at: indexValue)» –

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