我有一个应用程序,我在其中动态分配5 UISegmentedControl
到视图中。并在最后得到一个完成按钮。我的条件是进入下一步(按下完成按钮),所有UISegmentControl
s“应由用户选择”。
segmentcontrol中的默认选择是none。
如何在执行完成按钮操作之前检查用户是否选择了我视图中的所有UISegmentedControls
?
答案 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..
}
希望这有助于......快乐编码