各セルにいくつかの名前が付いたテーブルビューがありますが、行を選択したときにその名前を取得するにはどうすればよいですか?
私はデリゲートメソッドを使用する必要があることを知っています
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
しかし、どうすればその行のタイトルを取得できますか?
前もって感謝します
よろしく
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
NSString *cellText = selectedCell.textLabel.text;
}
このスニペットは、選択したセルを取得し、そのtext
プロパティをNSString
に格納します。
ただし、これはお勧めしません。データ層とプレゼンテーション層を分離しておくことをお勧めします。バッキングデータストア(配列など)を使用し、渡されたindexPath
オブジェクトのデータ(配列へのアクセスに使用するインデックスなど)を使用してアクセスします。このデータストアは、テーブルへの入力に使用されるものと同じになります。
標準のUITableViewCellを使用しているとすると、次を使用してセルを取得できます。
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
次に、次の方法でテキストプロパティビューのプロパティにアクセスします。
cell.textLabel.text
cell.detailTextLabel.text
次の(uitableview-)関数を使用して、uitabelviewの各行にアクセスできます。
cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]
ちなみに、uitableviewのデリゲートメソッド以外のメソッドでテーブルビューにアクセスするには、IBに接続する必要があります(たとえば..)
それが役に立てば幸い
ITableView デリゲートプロパティを介してクラスの1つをデリゲートとして登録したら、ユーザーが行を選択したときに呼び出されるtableView:didSelectRowAtIndexPath:
メソッドを実装するだけです。 (詳細については、 ITableViewDelegateプロトコルリファレンス を参照してください。)
次に、選択したセルからラベルテキストを抽出できます...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString *cellLabelText = cell.textLabel.text;
}
..これが本当に必要なものである場合。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *rowTitle=[tableView cellForRowAtIndexPath:indexPath].textLabel.text;
}
ここに、
[tableView cellForRowAtIndexPath:indexPath]は選択されたセルを提供し、次に.textLabel.textはそのセルのラベルを提供します。