2012-03-06 10 views
-1

ラベルとテキストフィールドを含むカスタムセルを作成しました。このカスタムセルをテーブルビューで使用しています。テキストフィールドにデータを入力すると、ビューをスクロールすると、データが置き換えられます。すべてのスクロールで、置き換えられる/消去されます。誰かが間違っている箇所を教えてください。 私のカスタムセルコードはここにあります。ありがとう!テーブルビューでカスタムセルを再利用できるようにする

-(UITableViewCell *)returnCellForEach:(UITableView *)tableView 
{ 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Identifier"]; 
    if (cell == nil) 
    { 
     [[NSBundle mainBundle] loadNibNamed:@"CustomCellToAddDetails" owner:self options:nil]; 
     cell = customCell; 
//  customCell = nil; 
     customLabel = (UILabel *)[customCell.contentView viewWithTag:100]; 
    } 
    return cell; 
} 

-(UITextField *)dataField 
{ 
    UITextField *textField = customField; 

    return textField; 
} 
+0

で、このライン

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Identifier"]; 

を置き換えたのですか? – jrturton

+0

@jrturton:これは私のカスタムメソッドです.iはカスタムセル用に作成しました。 – Kiran

+0

_Andどこから電話していますか?あなたのcellForRowAtIndexPathメソッドはどこですか? – jrturton

答えて

0

あなたはどこか特定のindexpathに関連するユーザーによって入力されたデータを格納する必要があるでしょうし、あなたが細胞をスクロールするときは、最初に任意のデータオブジェクトは、そのindexpathに対応し、それに応じてデータを設定があるかどうかを確認する必要があります。辞書を使用して、特定のセルに対応するデータを保存することができます。ある

クラスはQRTYPECELLと呼ばれ、以下の通りです、それは

+0

ありがとう!実際には、データベースで動作するBirthday Remainderアプリケーションを実行しています。このテキストフィールド値をすべてデータベースに格納しています。再度私は辞書を使用すると、データベースにデータを保存する際に問題が生じるでしょうか? – Kiran

+0

NO issue、あなたは安全にデータベースを使用できますが、tableviewを使って作業している間にテーブルセルをスクロールすると、辞書を使用して一時的にデータを保存できます。その後、このデータをデータベースに保存してフェッチすることもできます。 –

0

は、私はあなたが私はテーブルビュークラス外のカスタムテーブルビューのセルクラスを作成するために必要な私の場合には、使用しているメソッド名に精通していないですお役に立てば幸いです関連するコード:

テーブルビュークラスで
@implementation QRTypeCell 
@synthesize imageView; 
@synthesize labelview; 

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
if (self) { 
    // Initialization code 
    imageView = nil; 
    labelview= nil; 
    imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,30,30)]; 
    imageView.contentMode = UIViewContentModeCenter; 
    [self.contentView addSubview:imageView]; 
    self.contentView.backgroundColor = [UIColor blackColor]; 


    UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero]; 
    label.textColor = [UIColor greenColor]; 
    label.backgroundColor = [UIColor blackColor]; 

    label.font = [UIFont systemFontOfSize:17]; 
    self.labelview = label; 
    [self.contentView addSubview:label]; 


} 
return self;} 

そして:あなたはヴァルという識別子フィールドの場所にその中に任意の値を参照し、使用IBで

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"Cell"; 

QRTypeCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[QRTypeCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];} 
    CurrentQRCode = (QRCode *)[fetchedResultsController objectAtIndexPath:indexPath]; 
    NSString *icon = CurrentQRCode.parsed_icon; 
    NSString *string = CurrentQRCode.parsed_string; 
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;  
    NSString *filePath = [[NSBundle mainBundle] pathForResource:icon ofType:@"png"]; 
    UIImage *image_file = [UIImage imageWithContentsOfFile:filePath]; 
+0

:私の質問に答えてください。あなたは私の質問には合わないと答えました。あなたはテーブルビューの答えを出しています。私の質問の部分は違います。 – Kiran

0

再利用識別子としてのue。 これはあなたに役立つと思います。 `とあなたからそれを呼び出している:

+0

:私は前にそれをしました。そして変化はありません。 – Kiran

+0

あなたはどちらも同じ名前@「Identifier」を入れました – hchouhan02

+0

どちらも意味がありますか?私はカスタムセルIBにのみ配置しました。カスタムセルでは、私はそれを正しく再利用しています。私はまだ他の場所を使用する必要がありますか? – Kiran

0

okが、私はそれはあなたがcustomCellのためのクラスを作成し` returnCellForEachは何ですか

CustomCell *customCell=(CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
関連する問題