Swift:以编程方式更改我的UISegmentedControl的项目

时间:2015-07-23 18:26:52

标签: ios uisegmentedcontrol

我想根据其他选择更改UISegmentedControl中的项目。我不想更改项目数量,只需更改项目标签,以及UISegmentedControl的“隐藏”变量。

以下是获取UISegmentedControl的代码:

@IBOutlet weak var viewPicker: UISegmentedControl!

以下是更改它的代码:

viewPicker = UISegmentedControl(items: ["Description", "Location"])

但是,这不起作用,有时会将viewPicker设置为nil,从而产生错误。这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:4)

由于您将变量声明为“弱”,因此一旦分配变量,它就会被释放。但你无论如何都不应该这样做,因为它是@IBOutlet - >你应该通过界面构建​​器连接它。

至于更改标题,而不是仅创建新的SC,请使用

self.viewPicker.setTitle("", forSegmentAtIndex: index)

隐藏/显示分段控件,

self.viewPicker.hidden = true / false

希望它有所帮助!

答案 1 :(得分:3)

UISegmentControl有一个方法可让您更改单独调用的标签: setTitle(_:forSegmentAtIndex:)。所以你只需在你的分段控件上使用它就像这样:

self.viewPicker.setTitle("Description", forSegmentAtIndex:0)
self.viewPicker.setTitle("Location", forSegmentAtIndex:1)

答案 2 :(得分:0)

对于Swift 3.0使用:

 self.viewPicker.setTitle("Description", forSegmentAt: 0)
 self.viewPicker.setTitle("Location", forSegmentAt: 1)