2

私は iOS アプリケーション開発の初心者であり、UItableview に関するヘルプが必要です。テーブルビューにjsonデータを入力しているので、カスタマイズされたTableviewcellも使用しています。「lbluid」で選択したセルの「huid」値を取得できません。「lbluid」はスクロールに応じて「huid」の値を表示しています。上にスクロールすると、UITableviewの一番上に表示されているセルの「huid」値が表示され、下にスクロールすると最後の「huid」値が表示されます下から見えるセル。

- (UITableViewCell *)tableView:(UITableView *)tableView
     cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"SimpleTableCell";
    SimpleTableCell *cell = (SimpleTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil)  {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SimpleTableCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];;
    }

    NSUInteger row = [indexPath row];

    cell.lbl4.text = [hudid objectAtIndex:row];
    lbluid.text=cell.lbl4.text;
    return cell;
}

SimpletablecellカスタマイズされUITableViewCellたです。

4

2 に答える 2

11

メソッドを実装する必要がある場合があります。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

行が選択されるたびに呼び出され、そのメソッド内で:

Simpletablecell *cell = (Simpletablecell *)[tableView cellForRowAtIndexPath:indexpath];
lbluid.text = cell.lbl4.text;

メソッド:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

テーブルビューは表示されるセルをロードしていると呼ばれます。これがlbluid.text、テーブルビューがスクロールされたときにのみ変更する理由です。

于 2013-01-16T13:19:33.203 に答える
1

スイフトで

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

       let cell = tableView.cellForRow(at: indexPath) as! NotesCell!
        let value = cell?.lblDetail.text
    }
于 2016-12-26T12:00:04.393 に答える