2016-11-25 4 views
1

セグメントコントロールを使用しています。 には2つのデータが含まれています。 1つのデータはデフォルトであり、セグメント内にデフォルトを表示する必要があります。SegmentControlを使用して最後に選択したインデックスとデフォルトのインデックスにデータを追加する方法

私はこのように、デフォルトのデータを設定しています:私はこの方法のようにインデックスをmananingい

- (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; 
    } 
} 

私はセグメント制御にデフォルト値を追加することができています。 セグメントの値を変更できます。 2番目のセグメント を選択したとしますが、次のコントローラに移動してコントローラのセグメントに戻ると、最初にindex.iが次のコントローラに移動した場合と同じように欲しいですが、最後に選択したセグメントは ViewDidLoad

@property(nonatomic,assign)int selectedIndex; 

のようなあなたのViewController.h宣言int型では

+1

を削除し、既存の携帯サブクラスから同じビューコントローラ

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

にセグメントの値変更アクションを追加?はいの場合、メソッドviewDidLoad:は戻ってきてもデータは同じままになりません。どのメソッドでfor the cycleを呼び出しますか? –

+0

@JacopoPenzoテーブルビューのセルにセグメントコントロールを追加してデータを追加しています。 –

+0

@JacopoPenzoアップデートの質問 –

答えて

1

をどうするかがデフォルト値に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]; 
    .. 
} 

self.selectedIndex = 0; 

を割り当てるがあるはずです

、あなたは二つのコントローラ間を移動するには、あなたのナビゲーションコントローラにプッシュとポップを使用しています次の行

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

私はデフォルト値を取得しており、私はsegment.iに表示する必要がありますカスタムセルに追加しています。私はコントローラを変更するとき。選択されたセグメントを選択する必要があります –

+0

はい正確にthats私は上記のコードをお勧めします。 – Mahesh

+0

私が質問に追加するテーブルビューのセルのコードで変更する必要があるものよりも –

関連する問題