单击uitextfield时调用uitableview - 数据不显示-iOS

时间:2014-05-19 09:40:28

标签: ios objective-c uitableview uitextfield

我希望在点击特定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]'

1 个答案:

答案 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;
}