1

残念ながら、私はObjCを初めて使用します。

下部に2つのボタンがあるリストとツールバーを作成しました。

ここに画像の説明を入力してください

最初のボタンはリストの更新を行い、2番目のボタンはリストアイテムをタップしたときに「有効」になっている必要があり、クリックすると追加の作業が実行されます。これには、開始時にこのボタンを無効にする必要がありますが、didSelectRowAtIndexPathでは有効にします。

後で使用するために、viewDidLoadメソッドの2番目のボタンへのポインターを取得したいと思います。そのようなものは素晴らしいでしょう:

UIBarButtonItem* m_pButtonA = (UIBarButtonItem*) some_magic_function_to_call;
UIBarButtonItem* m_pButtonB = (UIBarButtonItem*) some_magic_function_to_call;

したがって、後で必要に応じて制御メソッドを呼び出すことができます。

[m_pButtonRefresh method...]

これは可能ですか?ご入力いただきありがとうございます。

4

3 に答える 3

3

カスタム ビュー コントローラー クラスで、次のように IBOutlet プロパティを作成します。

@property (nonatomic, weak) IBOutlet UIBarButtonItem* m_pButtonA;
@property (nonatomic, weak) IBOutlet UIBarButtonItem* m_pButtonB;

(もっとわかりやすい名前を使うことをお勧めします)

次に、Interface Builder で、これらのプロパティを各ビューのリファレンス アウトレットに設定できます (小さな (+) から IB の左側のサイドバーにあるビュー コントロールにドラッグし、適切なプロパティを選択します)。

の行に沿ったコードを使用して、これらの項目にアクセスできるようになりますself.m_pButtonA。コードによって自動的に生成されるため、それらへの参照を手動で作成する必要はありません。

これは、GUI イベントをビュー コントローラーのメソッド (タイプ IBAction のラベルが付いたメソッドを使用する) に接続するときに使用するアプローチにいくぶん似ており、これらのイベントが発生すると自動的にトリガーされます。IBOutlet と IBAction はどちらも、Interface Builder のちょっとしたヒントにすぎません (IBAction は、実際には void の別名にすぎません)。

于 2013-01-06T18:36:31.410 に答える
1

あなたは Android のバックグラウンドから来ているようですね。探しているものと同等のアウトレットについて読む必要があります。

Apple のチート シートCocoa Application Competencies for iOSを参照してください。必要な場合は、より詳細なドキュメントにリンクしています。

于 2013-01-06T18:26:09.993 に答える
0

わかりました、私はここで答えを見つけました

viewDidLoad から UIButton 参照を取得する

簡単に言えば:

ボタンにタグを付けて、タグ値でボタンにアクセスするだけです。

UIButton *btn = (UIButton*)[self.view viewWithTag:1];
[btn setHidden:YES];
于 2013-01-06T18:37:48.457 に答える