1

テーブル ビュー コントローラーから値を取得し、それを別のテーブル ビュー コントローラーに送信しようとしています。

didSelectRowAtIndexPath私が使用した方法でそれを達成したい

UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];  
NSString *num=cell.textLabel.text; 

ここでの問題は、セルに数値と文字列が含まれていることですが、数値だけが必要です。
番号だけを取得する方法はありますか?

4

2 に答える 2

4

ビューのラベルまたはタグ内にデータに関する情報を保存しようとするのが良い考えであると私が考えることができる理由はほとんどありません。それはプログラムを書きにくくし、理解しにくくします。代わりに、最初にビューに配置するデータを提供したのと同じ方法を使用してください。次に例を示します。

- (void)tableView:(UITableView *)tv didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    id dataObject = [self dataForIndexPath:indexPath]; // assuming you called this in ..cellForRow... to provide the "vc" instance you mentioned in your comment
    int value = dataObject.number;
    //Now go do work with the value you extracted. 
}

このメソッドは、コメントで参照しdataForIndexPath:たインスタンスを、テーブルセルのラベルに入力するために使用されるデータのソースとして取得するために行われた作業を表しているにすぎません。vcこのメソッドはビューにまったくアクセスしないことに注意してください。データの元のソースに直接アクセスして、必要なものを正確に取得します。他のソリューションとは異なり、これは整数だけでなく、あらゆるタイプのデータに対しても機能します。

これがお役に立てば幸いです。ご不明な点がありましたらお知らせください。

于 2012-09-30T17:56:02.743 に答える
-3

テキストラベルから抽出しようとする代わりに、セルのタグ値を cellForRowAtIndexPath メソッドの数値に設定し、それをメソッド didSelectRowAtIndexPath で使用します。

cellForRowAtIndexPath

cell.tag = vc.Number;

didSelectRowAtIndexPath

UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];  
NSUInteger num=cell.tag; 
于 2012-09-30T09:57:10.213 に答える