gpt4 book ai didi

ios5 - 在 UISegmentedControl 中设置默认段

转载 作者:行者123 更新时间:2023-12-04 17:55:59 25 4
gpt4 key购买 nike

我有一个应用程序,它有两个 View Controller Viewcontroller 和 OptionsViewController。 Viewcontroller 是初始的viewcontroller,然后如果我单击一个按钮,我就会有一个到optionsviewcontroller 的模态segue。
在 optionsviewcontroller 中,我从 Storyboard创建了 UISegmented viewcontroller,它链接到一个 socket (UnitsSegmentedControl),我希望能够告诉分段控件在 OptionsViewController 加载时默认选择哪个段。
在我的 Viewcontroller 中,我写了一个方法:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
OptionsViewController *ovc=[segue destinationViewController];
ovc.delegate=self;
[ovc.UnitsSegmentedControl setSelectedSegmentIndex:1];
}
问题是当 OptionsViewController 加载 View 时,默认情况下所选索引为 0。我没有收到任何错误消息或其他内容。
我正在使用 Xcode 4.2。我认为这可能是我可以在 Storyboard中更改以使 UISegmentedControl 能够设置默认选定索引的一些选项。我不知道还有什么可能导致这种情况。
编辑:
我发现如果我写:
[ovc.UnitsSegmentedControl setSelectedSegmentIndex:1];
在 OptionsViewController 方法中 viewdidload 一切正常。为什么我不能从准备转场方法中做到这一点?

最佳答案

在加载 OptionsViewController 之前,分段控件不存在,这就是为什么您无法在 ViewController 的 prepareForSegue 方法中设置所选段的原因。查看 UISegmentedControl Class Reference 发现无法设置默认状态:

“默认值为 UISegmentedControlNoSegment(未选择段),直到用户触摸段。将此属性设置为 -1 以关闭当前选择。当控件处于瞬时模式时,UISegmentedControl 忽略此属性。当用户触摸段以更改选择,生成控件事件 UIControlEventValueChanged;如果分段控件设置为响应此控件事件,则会向其目标发送操作消息。”

在 OptionsViewController 的 viewDidLoad 方法中设置 selectedSegmentIndex 是设置 View Controller 默认值的正确方法。

关于ios5 - 在 UISegmentedControl 中设置默认段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8862082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com