我希望在点击特定uitableview
时在uitextfield
中显示数据。我没有收到taleview
中的数据。请检查以下内容并帮助我。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier ];
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;
cell.accessoryType = UITableViewCellAccessoryCheckmark;
[cell.textLabel setFont:[UIFont fontWithName:@"Bold" size:20]];
if (ethnicityField.tag == 1)
{
cell.textLabel.text = [data objectAtIndex:indexPath.row];
}
if (languageField.tag == 2)
{
cell.textLabel.text = [langData objectAtIndex:indexPath.row];
}
在这里,当我点击第一个textfield
时,它会显示空表并崩溃。
它没有采用确切的标签值。请帮忙。
- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section{
int row = 0;
if (ethnicityField.tag == 1)
{
row = [data count];
}
if (languageField.tag == 2)
{
row = [langData count];
}
return row;
}
崩溃报告:
实际上我有2个数组,一个有5个值,另一个有11个值,问题是textfield
取第一个数组,如果我在第二个textfield
中选择第五个对象,则显示以下错误。
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 9 beyond bounds [0 .. 4]'
答案 0 :(得分:1)
我相信ethnicityField和languageField始终具有相同的标记,因此numberOfRowsInSection始终返回[data count];
您可以做的是在显示表格时检查文本字段是否处于活动状态。
- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section{
int row = 0;
if ([ethnicityField isFirstResponder])
{
row = [data count];
}
else if ([languageField isFirstResponder])
{
row = [langData count];
}
return row;
}