如何使用文本输入填充tableview控制器

时间:2012-11-21 12:55:27

标签: ios arrays controller nsmutablearray tableview

我创建了一个表{1}}的表视图控制器。如何填充来自UITextField的输入文本的tableview控制器单元格。我尝试了以下但似乎数组是空的或被清空

UITextField

在我的- (IBAction)endingInput:(id)sender{ [sender resignFirstResponder]; //send the message to the table cell NSMutableArray *history = [[NSMutableArray alloc] init]; [history addObject:[NSString stringWithFormat:@"%@",self.chatMessageField.text]]; [self.chatHistory addObject:history]; [myTableView reloadData]; //push the message to server [self initiateMessageSending:self.chatMessageField.text]; chatMessageField.text = @""; [history release]; } 方法上

cellForRowAtIndex

我设置了一个断点,但它没有通过那里。我怀疑我的阵列是空的。

同样,调用static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; // Configure the cell... if(cell == nil){ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } if(tableView == self.myTableView){ cell.textLabel.text = [chatHistory objectAtIndex:indexPath.row]; } return cell; 方法的最佳位置在哪里?

另外,reloadData是私有成员,有没有办法像chatHistory一样初始化它?

我知道这是一个常见问题,但我现在已经讨价还价了。

2 个答案:

答案 0 :(得分:0)

我认为您忘记分配并初始化chatHistory

- (void)viewDidLoad
{
    self.chatHistory = [[NSMutableArray alloc] init];
}

答案 1 :(得分:0)

如果你没有初始化chatHistory它甚至不存在......不要介意空虚! (我不清楚“私人会员”在这里是什么意思。)

如果您记录chatHistory的值,您会看到它是否为空或是空的。

我看到的另一个问题是您尝试将chatHistory加载到其他(history)数组中,然后将其内容用作字符串。你应该决定它是一个数组数组还是一个字符串数组,然后保持一致。

[[self.chatHistory alloc] init];也不是创建新对象的有效语法。请以正确的方式查看Objective-C language reference。)