0

簡単な質問があります:

tableView で、customCells のリストを表示しています。これらのセルには、SegmentedControllers....というラベルが含まれています。

ラベル、segmentedController およびその他のセル属性は、特定のクラスで宣言されます。

リストが更新されたクラスで、セルのセグメント化されたコントローラーが変更されているかどうかをどのように検出できますか? このクラスでは、次のようなことをすると:

if (cell.segmentedControl == 1) { DO MY THINGS }

...何も起こりません。

誰かアドバイスはありますか?:-)

4

1 に答える 1

2

まず第一に、私はあなたが使用する必要があると確信しています

(cell.segmentedControl.selectedSegmentIndex == 1)

いつ変更されたかを知ることに関しては、セル クラスに接続された IBAction を使用し、セル コントロールがクリックされたときにセル クラスからコールバックを取得するデリゲートをビュー コントローラーに設定します。

EDIT -----------------------
セルのクラスに .h を追加します

@property (nonatomic, weak) id<NSObject> delegate;

セルのクラス .m

@synthesize delegate = _delegate;

- (IBAction)segmentControlChanged
{
    if ([self.delegate respondsToSelector:@selector(segmentChanged:)]) {
        [self.delegate performSelector:@selector(segmentChanged:) withObject:self];
    }
}

テーブルを持つViewControllerのcellForRowAtIndexPathメソッドで、追加します

cellname.delegate = self

メソッドを追加します

-(void)segmentChanged {
  // Put code here to refresh your data source
[self.tableView reloadData];
}
于 2012-07-23T08:34:58.800 に答える