如何检查用户是否选择了UISegmentedControl?

时间:2011-08-23 07:35:37

标签: iphone ios ios4 uisegmentedcontrol

我有一个应用程序,我在其中动态分配5 UISegmentedControl到视图中。并在最后得到一个完成按钮。我的条件是进入下一步(按下完成按钮),所有UISegmentControl s“应由用户选择”。

segmentcontrol中的默认选择是none。 如何在执行完成按钮操作之前检查用户是否选择了我视图中的所有UISegmentedControls

4 个答案:

答案 0 :(得分:11)

从苹果文件中,这应该回答你的问题:

@property(nonatomic) NSInteger selectedSegmentIndex

讨论 在用户触摸片段之前,默认值为UISegmentedControlNoSegment(未选择片段)。

希望您可以使用它来检查该值是否为用户选择,以防止转到下一页。

答案 1 :(得分:6)

NSLog(@"%i", self.segment.selectedSegmentIndex);

如果未选择任何细分,则结果为-1

答案 2 :(得分:0)

为您的segmentControls添加目标和操作以获取UIControlEventValueChanged。 从您给出的选择器中,检查哪个segmentControl已更改,并设置它的相应标志(例如:未选中的字符串数组为@“0”,选择后为@“1”。

在任何时候检查未设置哪些标志,从未选择相应的segmentControl。

答案 3 :(得分:0)

这就是你如何创建一个UISegmentedControl

NSArray *itemArray = [NSArray arrayWithObjects: @"Title1", @"Title2", @"Title3", @"Title4",nil];
segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
segmentedControl.frame = CGRectMake(0, 0, 310, 35);
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.selectedSegmentIndex = 0;
[segmentedControl addTarget:self action:@selector(pickOne:) forControlEvents:UIControlEventValueChanged];   
segmentedControl.tintColor=[UIColor grayColor];

然后找到选择的段

NSString *category =[segmentedControl titleForSegmentAtIndex: [segmentedControl selectedSegmentIndex]];

if(category==@"Title1"){
    //Do something here..
}

希望这有助于......快乐编码