2016-07-20 32 views
0

我在UIViewController中有一个UITableView。有两个自定义单元格。其中一个有一个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

就是这样..如果你想让它成为答案,我会把它关闭..顺便说一句。对于其他人,代码应该是'sender?.selectedSegmentIndex' –

+0

你可以发布一个答案给你自己的问题。 “BTW”,在操作方法中,你不需要使用Optional,将参数声明为'sender:UISegmentedControl'(否'?'),并用作sender.selectedSegmentIndex。 – OOPer

回答

0

试试这个:(也去掉了从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

非常感谢。完美 –

+0

即使你可以通过“segment.titleForSegment(at:indexValue)”获得标题 –

相关问题