こんにちは、UIsegmentedcontrolでUICollectionビューのセル情報にアクセスしようとしています。UICollectionビューのセル情報にアクセスできない
コレクションビューでは、4つのラベルとUIセグメント化コントロールがあります。セグメント化されたコントロールをタップすると、ラベル値を表示します。
ここは私のコードです。
- (UIView *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CELL" forIndexPath:indexPath];
cell.mySegmentedControl.tag = indexPath.row;
selectedSegment = cell.mySegmentedControl.selectedSegmentIndex;
[cell.mySegmentedControl addTarget:self action:@selector(segmentValueChanged:) forControlEvents:UIControlEventValueChanged];
cell.caseid.text=[tmpDict objectForKey:@"CaseId"];
caseid = [tmpDict objectForKey:@"CaseId"];
}
- (void) segmentValueChanged: (UISegmentedControl *) sender {
//NSInteger index = sender.tag;
if(sender.selectedSegmentIndex == 0)
{
NSString *localcaseid = caseid; // it shows default value may be first cell value.
CollectionViewCell * cell = [[CollectionViewCell alloc]init];
NSString *localcaseid = cell.caseid.text; //it prints null value
}
else
{
}
上記のコードは私のためには機能しません。何か助けになるでしょう。その特定のセルに関する情報を表示したいと思います。あなたのViewControllerで
をデリゲートを割り当てますsegmentValueChanged()メソッド内で、コントローラを取得しています? – Aneesh
いいえ............. –
基本的な問題は、UICollectionViewCellインスタンスを追跡していないことです。あなたが 'UICollectionViewCell'の新しいインスタンスを作成するとき、それはあなたが期待するものではありません。カスタムデリゲートを作成し、そのセルをパラメータとして渡すと、この問題は解決されます。さらなる助けが必要な場合は、私に知らせてください。 – dirtydanee