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