1

iOS 6 iPhone アプリに Twitter 統合を追加しようとしています。Social フレームワークをインストールし、すべてのコードを持っていますが、画面の 1 つでコードを UIButton に接続できません。複数の画面を簡単に作成できるように、ストーリーボードを使用しています。スクリーンショットを投稿することはできませんので、私が話していることを理解していただければ幸いです。ありがとう!

エヴァン

4

1 に答える 1

4

ストーリーボード内で UIButton の参照を作成するには、次のことを行う必要があります。

1) ViewController のクラス名 (UIButton の動作を処理するもの) を StoryBoard の ViewController にリンクします。これを行うには、ストーリーボードに移動し、接続する UI 要素を含む ViewController を選択します。次に、左隅にある「Identity Inspector」を選択します (3 番目のオプションです)。次に、「クラス」フィールド内に ViewController のクラス名を入力する必要があります。

2) 次に、Xcode 4.5 が提供する Assistant Editor を使用して、UI 要素をクラスに簡単に接続できます。アシスタント エディターを表示するoption + command + returnには、[表示]、[アシスタント エディター]、[アシスタント エディターの表示] の順にクリックします。Assistant Editor が表示されたら、StoryBoard で ViewController を選択する必要があります。ViewController のクラスの @interface が自動的に表示されます。

3)Control + Clickあとは、UI 要素を保持し (この例では UIButton を使用できます)、アシスタント エディター内で ViewController のクラスの @interface の下にドラッグするだけです (青い線が投影されていることに気付くでしょう)。ボタンからマウスの位置まで)。ドロップすると、必要な接続のタイプを選択するためのダイアログが表示されます。デフォルトのままにして、プロパティの名前を挿入してください。次のようなものを追加する必要があります。

@property (weak, nonatomic) IBOutlet UIButton *myButton;

デフォルトでは、アウトレット (IBOutlet) を作成するオプションが表示されます。これは、Interface Builder (この場合はストーリーボードを使用) で作成された UI 要素へのリンクを作成しているプロパティを Xcode に伝える方法にすぎません。UIButton の IBOutlet プロパティを使用すると、そのパブリック プロパティにアクセスしたり、状態を要求したり、変更したりできます。たとえば、ボタンのテキストを変更できます。

4) ただし、ボタンに動作を追加するには、IBAction を作成する必要があります。これは、アシスタント エディターを使用して行うこともできます。繰り返しますが、Control + Click別の接続を UIButton から @interface ファイルにドラッグする必要があります。ただし、今回は接続タイプで「アクション」を選択し、名前を指定する必要があります。

注意すべきことの 1 つは、デフォルトでは、UI 要素の IBAction を作成すると、その要素の最も一般的なイベントが選択されることです。UIButton の場合は、「Touch Up Inside」イベントです。同じ UI 要素のさまざまなイベントに応答するために、さまざまな IBAction を作成できます。

@interface ファイルの結果のコードは次のようになります。

//  MyViewController.h

#import <UIKit/UIKit.h>

@interface MyViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIButton *myButton;

- (IBAction)myButtonTouchUpInsideAction:(id)sender;

@end

@implementation ファイルの下部を見ると、次のような IBAction を返す新しいメソッドを確認できるはずです。

- (IBAction)myButtonTouchUpInsideAction:(id)sender
{
    // insert your behaviour here
}

そのメソッドのスコープ内で、登録されたイベントが発生したときに UIButton が実行する動作を追加できます。

IBOutlet プロパティを使用するには、次のように @implementation ステートメントの後に IBOutlet 名を含む @synthesize ステートメントを追加する必要があります。

@implementation MyViewController

@synthesize myButton;

これで、次を呼び出して UIButton プロパティを使用できるようになりました。

self.myButton

お役に立てれば!十分に明確でない場合は、お知らせください。

于 2012-11-18T02:33:36.853 に答える