ここでは単純なものを紛失していますが、それは私を逃してしまいます。ユーザーが変更可能な配列に新しい人物を入力した後、私はテーブルを更新したい。可変配列はデータソースです。問題はcellForRowAtIndexPath
にあると私は信じています。人を追加した後にテーブルビューが正しく更新されない
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TextFieldCell *customCell = (TextFieldCell *)[tableView dequeueReusableCellWithIdentifier:@"TextCellID"];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (indexPath.row == 0) {
if (customCell == nil) {
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"TextFieldCell" owner:nil options:nil];
for (id currentObject in nibObjects) {
if ([currentObject isKindOfClass:[TextFieldCell class]])
customCell = (TextFieldCell *)currentObject;
}
}
customCell.nameTextField.delegate = self;
cell = customCell;
}
else {
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
cell.textLabel.text = [[self.peopleArray objectAtIndex:indexPath.row-1] name];
NSLog(@"PERSON AT ROW %d = %@", indexPath.row-1, [[self.peopleArray objectAtIndex:indexPath.row-1] name]);
NSLog(@"peopleArray's Size = %d", [self.peopleArray count]);
}
}
return cell;
}
初めてビューを読み込むとすべてが素晴らしいです。私はこれを取得、その配列に誰かを追加した後
PERSON AT ROW 0 = Melissa
peopleArray's Size = 2
PERSON AT ROW 1 = Dave
peopleArray's Size = 2
:
PERSON AT ROW 1 = Dave
peopleArray's Size = 3
PERSON AT ROW 2 = Tom
peopleArray's Size = 3
が、私は二人目を追加すると、私が得る:
PERSON AT ROW 2 = Tom
peopleArray's Size = 4
PERSON AT ROW 3 = Ralph
peopleArray's Size = 4
はなぜ印刷ではありませんこれは何版画ですアレイの誰もが?このパターンは続行され、2人の人物しか印刷されません。それは常に最後の2人です。私は何が足りないのですか?
--- を更新しました---
[OK]をクリックします。私の細胞は正しく更新されておらず、私はアドバイスを求めたものが私を助けようとしていると考えました。私はそれが主要な問題ではなかったと思う。
私の問題は、私の行が適切な情報を印刷していないことです。ビュー最初の負荷は私が取得する場合:
Melissa
Dave
を私はトムを追加した後、私が取得:
Melissa Dave
Melissa or Dave
Tom Tom
と私はラルフを追加した後、私が取得:
Melissa ?
Tom or ?
Tom Tom
Ralph Ralph
起こっていますに?
テーブルの更新方法? – TommyG
**テーブルビューが正しく更新されない**。新しいアイテムを追加するときにあなたのアプリには何が表示されますか?あなたは 'NSLog'の出力についてのみ話しましたが、実際のUIで何が問題なのか説明しませんでした。 – sch
問題は正しく更新されているセルだと思います。 'self.peopleArray'を印刷すると、それぞれの人物を追加した後、それぞれの人物が表示されます。しかし、それがセルに表示されると、すべての名前が正しく表示されるわけではありません。 – tazboy