Mpp*_*ppl 5 storyboard uisegmentedcontrol ios5 xcode4.2
我有一个应用程序,有两个viewcontrollers Viewcontroller和OptionsViewController.Viewcontroller是初始的viewcontroller然后如果我点击一个按钮我有一个modal segue到optionsviewcontroller.在optionsviewcontroller我有我从故事板创建的UISegmented viewcontroller链接到插座(UnitsSegmentedControl),我希望能够告诉分段控件默认情况下,当OptionsViewController加载时应该选择哪个段.在我的Viewcontroller中,我写了一个方法:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
OptionsViewController *ovc=[segue destinationViewController];
ovc.delegate=self;
[ovc.UnitsSegmentedControl setSelectedSegmentIndex:1];
Run Code Online (Sandbox Code Playgroud)
事情是,当OptionsViewController加载视图时,默认情况下所选索引为0.我没有收到任何错误消息或其他内容.我正在使用Xcode 4.2.我认为这可能是我可以在故事板中更改的一些选项,以使UISegmentedControl能够设置默认选择的索引.我不知道还有什么可能导致这种情况.谢谢
编辑:我发现如果我写:
[ovc.UnitsSegmentedControl setSelectedSegmentIndex:1];
Run Code Online (Sandbox Code Playgroud)
在OptionsViewController方法里面viewdidload一切正常.为什么我不能从准备segue方法中做到这一点?
在加载 OptionsViewController 之前,分段控件并不存在,这就是为什么您无法在 ViewController 的prepareForSegue 方法中设置所选段的原因。查看 UISegmentedControl 类参考发现无法设置默认状态:
“默认值为 UISegmentedControlNoSegment(未选择任何段),直到用户触摸某个段。将此属性设置为 -1 以关闭当前选择。当控件处于瞬时模式时,UISegmentedControl 会忽略此属性。当用户触摸某个段以关闭当前选择时,UISegmentedControl 将忽略此属性。更改选择时,会生成控件事件 UIControlEventValueChanged;如果分段控件设置为响应此控件事件,则会向其目标发送一条操作消息。”
在 OptionsViewController 的 viewDidLoad 方法中设置 selectedSegmentIndex 是设置视图控制器默认值的正确方法。
| 归档时间: |
|
| 查看次数: |
7529 次 |
| 最近记录: |