0

プロトタイプ セル内のストーリーボードで定義された UISegmentedControl があります。コントロールを IBOutlet に接続しようとすると、「接続をコンパイルできませんでした」という Xcode エラーが発生します。いくつか検索した結果、このエラー メッセージは、IBOutlet をこのようにプロトタイプ セルで使用できないことが原因であることがわかりました。コントロールに接続された IBAction の id パラメータを介して UISegmentedControl* にアクセスする方法はありますか? それぞれ独自の UISegmentedControl を含む複数のテーブル行を用意するので、とにかくそれらを区別するために IBAction にいくつかのロジックを入れる必要があります。

4

1 に答える 1

0

OK、IBOutletなしでこれを機能させました。私がしなければならなかったのは、それぞれのタグをUISegmentedControlある種の一意の番号に設定することでした。これは、後で物に触れたときに解析できます。cellForRowAtIndexPath メソッドの UITableViewController .m ファイルでこれを行いました。[mysegcontrol setTag:count];

次に、IBAction を に接続し、UISegmentedControlそのメソッド内で次のことを行いました。

   UISegmentedControl *usc = (UISegmentedControl *)sender;
   NSInteger sidx = [usc selectedSegmentIndex];
   NSString *stxt = [usc titleForSegmentAtIndex:sidx];
   NSInteger tag = [usc tag];

   NSLog(@"control text %@ tag %d", stxt, tag);

このように、switch ステートメントなどを使用して、 ;UISegmentedControlの値に基づいてヒットしたものを判断できます。tag

于 2013-10-02T17:41:09.460 に答える