swift2 Swift分段控制默认状态

6tqwzwtp  于 2022-11-06  发布在  Swift
关注(0)|答案(3)|浏览(159)

我有一个分段控制,如果你点击其中一个分段,效果很好,但如果你不点击任何东西,让它坐在自然休息点,这是第一个分段,它不工作
我通过点击另一个部分并继续应用程序来测试这一点,它工作了,我还通过点击另一个部分,然后回到第一个部分来测试,它工作了

@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
    }

}

这是有意义的,因为它被 Package 在IBAction中,没有按下任何东西,因此它没有被触发。我如何修复这个问题?

编辑

不起作用的意思是,如果突出显示的段显示为4,并且用户点击继续按钮(不同的按钮),则变量将更新为字符串“4”,然后firebase将更新为x = 4
因此,当您登录到页面时,默认情况下会突出显示4段,如果您希望4成为您的选项,则可以不使用它,并单击“继续”按钮...我的问题是,如果您不与段控件交互,而是实际单击4,则代码永远不会运行,但如果您单击6,然后返回到4,则会触发

63lcw9qa

63lcw9qa1#

您的问题不太清楚到底是什么坏了。如果您不点击它,什么不起作用?一般来说,使用UISegmentedControls有两个步骤。在第一步中,您可以在初始化中设置它-即viewDidLoad -通过:

segmenControl.selectedSegmentIndex =  your_initial_value

当然,您的初始值不能是numberOfParticipants,因为控件只有6个值。
然后第二步是类似于IBAction的东西,看起来很好。你对幻数的使用当然有点问题。

fzsnzjdm

fzsnzjdm2#

我是这样理解这个问题的:你有一个“继续”按钮,如果你点击它,你希望它反映出分段控件的状态。对吗?
如果是这种情况,则不需要IBAction,只需在Continue按钮的IBAction中直接读取segmentControl.selectedSegmentIndex即可。

wlwcrazw

wlwcrazw3#

我理解你的问题,我自己也有同样的问题。我做了实验,因为我不想让我的分段控件中的任何段被突出显示或选择,因为这会给我的用户造成混乱,如果突出显示的开始索引实际上是用户所需要的,然后当按下时没有在切换情况区域内执行操作。所以...我将索引值设为-1,这根本不会突出显示段的任何部分,它可以满足我的需求,并让用户选择所需的段。
我在我的ViewDidLoad()中设置了这个

mySegmentedControlOutlet.selectedSegmentIndex = -1

相关问题