如何使用SegmentControl ios将数据添加到上次选择的和默认索引

时间:2016-11-25 09:24:39

标签: ios objective-c uisegmentedcontrol

我正在使用细分控制。 它包含两个数据。一个数据是默认的,我需要在段中显示默认值。

我正在设置这样的默认数据:

- (void)awakeFromNib 
{
    [super awakeFromNib];
    [priceOptionSeg addTarget:self action:@selector(segmentedControlValueDidChange:) forControlEvents: UIControlEventValueChanged];
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
{
    [super setSelected:selected animated:animated];
    [self assignDO:priceList];
}

- (void)assignDO:(NSMutableArray *)inputList 
{
    for (int x = 0; x < inputList.count; x++) 
    {
        if (tempDO.price_is_default == YES) 
        {
            [priceOptionSeg setSelectedSegmentIndex:x];
            NSLog(@"%ld",(long) priceOptionSeg.selectedSegmentIndex);
        }
    }
}

我是这样的指控指数:

- (void)segmentedControlValueDidChange:(UISegmentedControl *)segment
{
    switch (segment.selectedSegmentIndex) 
    {
        case 0:
            NSLog(@"First was selected");
            break;

        case 1:
            NSLog(@"Second was selected");
            break;

        default:
            break;
    }
}

我可以在分段控件中添加默认值。 我可以在段中更改值。 假设我选择了第二段 但当我移动到下一个控制器并返回到我的控制器段时,首先是index.i想要,如果我移动到下一个控制器,但当我来到我的控制器。最后选择的部分应该在那里 怎么做

1 个答案:

答案 0 :(得分:1)

ViewController.h声明的int中

@property(nonatomic,assign)int selectedIndex;
ViewDidLoad中的

指定默认值

self.selectedIndex = 0;

CellForRowAtIndexpath所选索引

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Create you custom class cell here
    ..
    [cell.priceOptionSeg addTarget:self action:@selector(segmentedControlValueDidChange:) forControlEvents: UIControlEventValueChanged];
    [cell.priceOptionSeg setSelectedSegmentIndex:self.selectedIndex];
    ..
}

并在同一个视图控制器中添加segment的值更改操作

- (void)segmentedControlValueDidChange:(UISegmentedControl *)segment
{
    switch (segment.selectedSegmentIndex) 
    {
        case 0:
            self.selectedIndex = 0;
            break;

        case 1:
            self.selectedIndex = 1;
            break;

        default:
            break;
    }
}

从现有的Cell SubClass中删除以下行

[priceOptionSeg addTarget:self action:@selector(segmentedControlValueDidChange:) forControlEvents: UIControlEventValueChanged];