2011-01-22 6 views
10

私は、appDelegateでインスタンス化され、ナビゲーションコントローラにプッシュされたビューコントローラを持っています。ビューコントローラのビューは、xibファイルで作成されます。 xibファイルはUILabelをビューに置きます(とりわけ)。今はラベルのテキストプロパティをプログラム的に設定する必要がありますが、参照を取得する方法はわかりません。ラベルオブジェクトをどのように参照するのですか?iOSでは、xibファイルで作成されたビュー内のオブジェクトをどのように参照しますか?

私はxcode 3.2.5を使用してiPadアプリを構築しています。

答えて

27

IBOutlets以外に、IBのラベルにタグプロパティを設定することもできます。次に、あなたがそれを必要とするとき、あなたが行うことができます。もちろん

UILabel *label = (UILabel *)[self.view viewWithTag:111]; 

111を使用すると、IBにラベルに割り当てられたタグであること。

+1

これは良いことです。私はタグを使う方法を知らなかったし、今私は知っている。どうもありがとうございました! – RobertL

+0

上記のコードをテストしましたか? Appleのドキュメンテーションでは、viewWithTagはUIViewを返します。それ以外のものはありません:「タグが指定された値と一致するビューを返します。 2016-03-13 17:28:40.961 LumaCoreData [5211:1212054] - [UIView value]:認識できないセレクタがインスタンスに送信されました0x14d6dbc00 2016-03-2010このページの内容は予告なく変更される場合があります。 13:17:28:40.962 LumaCoreData [5211:1212054] ***キャッチされていない例外 'NSInvalidArgumentException'、理由: ' - [UIView value]:インスタンス0x14d6dbc00に送信された認識できないセレクタ' –

9

"アウトレット"と呼ばれるものでこれを行います。それらをコントローラーで定義し、明確にIBOutletとマークしてから、Interface Builderでファイル所有者(またはIBで作成された他の委任オブジェクト)に接続します。

@interface FooController() 
@property (nonatomic, weak) IBOutlet UILabel* fooLabel; 
@end 

は、その後、あなたのラベルを選択することになり、ファイルの所有者に、それからの制御ドラッグのいずれか、またはその接続]タブに移動し、ドラッグから:

例えば、中にあなたのFooController.mあなたはこれを持っているかもしれません参照元のアウトレットの+をファイル所有者に送信し、fooLabelを選択します。

更新:このケースを処理する現代的な方法を反映するようにコードサンプルが変更されました。

+0

これは良いお役立ち回答です。ありがとうございました。私はそれに緑色のチェックを与えるだろうが、明らかに2つの異なる答えにチェックを与えることはできません。 – RobertL

0

[self.view viewWithTag:NUMBER_OF_TAG];トリックします。ただし、ビューにアクセスする場合は、viewWillAppearまたはviewDidAppearイベントで行う必要があります。

関連する問題