2011-09-12 6 views
0

私は、別のビューでuitableviewcell UIlableに値を渡したいNSobjectの中にNSStringを設定していますか? label1のテキストを変更して動作します他のオブジェクトからUItextlabelテキストを設定する方法

//inside tableview/forRowAtIndexPath 
    //load VehicleSearchObjects 
    VehicleSearchObject *vehicleSearchObject = [[VehicleSearchObject alloc] init]; 

    if(indexPath.section == 0) 
    { 
     if(indexPath.row == 0) 
     { 
      UILabel *label1; 
      label1 = (UILabel *)[cell viewWithTag:1]; 
      label1.text = @"Manufacture"; 

      UILabel *label2; 
      label2 = (UILabel *)[cell viewWithTag:2]; 
      label2.text = [vehicleSearchObject manufacturerString]; //this is where I try to set the text... but nothing is happening, am I doing it right or should I be doing something else? 
+0

あなたはuilabelを意味しました – Robin

+0

もっとコードを投稿してください....このmanufacturerStringは何ですか?タグ1,2には何が割り当てられていますか? – mayuur

+0

タグ1と2つはUIlabelがどのようなものであるかを定義しています。ラベルを使用してカスタムtableviewcellを作成すると、インターフェイスビルダ内でタグ値を設定できます。これは、その値が正しいUILabelに渡されるように参照するだけです。製造ストリングは単なる文字列です。後で親ビューで使用するためにNSObjectに渡しています。基本的にここでの全体的な目標は、大きなデータベースを検索するために使用する一連の値を穴を開けることです。 –

答えて

0

なら、私はその後..コードは私は正しいことをやっているが、そのだけでラベルのテキストを変更していないように感じるように正しくこれを設定するにはどうなるかwounderingています私はあなたがアクセスしようとしているラベルが確かにタグ2であるかどうかを調べて、もし真なら、manufacturerStringが本当に何かを返すならば。

0

vehicleSearchObjectは、メソッドが呼び出されるたびに初期化されます。 manufacturerStringnilでないことを願っています。また、割り当てられていない場合はUILabelにメモリがない可能性があります。それを@propertyにしてみてください。デバッガコンソールにメモリがあるかどうかを確認できます。

EDIT:UILabel * label1を宣言し、実装や.mファイルにあなたのインターフェースや.hファイル内@property(nonatomic,retain) UILabel * label1;@synthesize label1;を書きます。 Alloc/UIViewのラベルをviewDidLoad:などのように初期化する。これにより、すべての機能にわたってスコープを持つlabel1にメモリが割り当てられます。今度はUILabel *label1;を書き換えないでください。必要に応じてテキストを設定してください。 label2についても同様です。

+0

確かに私の初期化は問題を引き起こすだろうと思うけど、どうすればこれを扱うことができるのか分からない。それぞれが個別に初期化されるいくつかの値を保持する必要がある。 –

-1

UILabel.text =(String)の代わりに[UILabel setText:(NSString)]を試してみてください。

+1

'label.text = str;'は ' [label setText:string]; 'また、UILabelクラスのインスタンスではなく* UILabelクラスの*インスタンス*で呼び出す必要があります。 – PengOne

関連する問題