3

Interface Builder でセグメント化されたコントロールを作成しました。

私のViewController.hで:

@interface ViewController : UIViewController <MKMapViewDelegate>
@property IBOutlet UISegmentedControl *Segment;
- (IBAction)switchMode:(id)sender;
@end

私ができることは、セグメント化されたコントロールを IBAction に接続することでしたが、IBOutlet に接続できません!

4

3 に答える 3

6
  • nib/Storyboard にセグメント化されたコントロールを追加する
  • 次のコードを .h に追加します。

@property(nonatomic,retain) IBOutlet UISegmentedControl *Segment;

  • ストーリーボードまたはxibで、ファイルの所有者が、アウトレットを記述したクラスと同じクラス名を持っていることを確認してください
  • segmantControl を右クリックすると、アウトレットとアクションを含むウィンドウが表示されます
  • 参照アウトレットをクリックしてドラッグし、ファイル所有者 にドロップすると、コードで記述されたアウトレットを含む新しいポップが表示され、それを選択します。

接続が確立されました

于 2013-02-11T21:43:48.217 に答える
0

プロパティのパラメータを書くのを忘れた場合は、以下のコードのように修正してください

@property(nonatomic,retain) IBOutlet UISegmentedControl *Segment;

この後、このプロパティを.mファイルで次のように合成します

@Synthesize Segment;
于 2013-02-11T18:42:11.883 に答える
0

一部の xCode の更新により、特定のアウトレットを .h に接続できなくなったようです。ただし、.m で接続しても問題ないはずです。

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UISegmentedControl *mySegmentedController;
@end

いくつかのドキュメントを読んで、これがいつ変更されたかを確認します。また、このプロパティを公開インターフェイスに接続する理由はありません (したがって、許可されなくなった理由)。そのクラスのView Controllerだけがそれを制御する必要があります。

于 2013-02-11T19:18:38.443 に答える