ストーリーボードに定義された 3 つのプロトタイプ セルがありUISegmentedControl
、それぞれにウィジェットが含まれています。ユーザーに提示する基準は 2 種類あります。一方は[ON|OFF]
他方です[1|2|3|4]
。各ウィジェットのテキストをプログラムで設定する必要があるため、.wpTag
を使用して正しいプロトタイプ セルからウィジェットを取得するために、ストーリーボードでウィジェットを設定しています[cell viewWithTag:XX]
。問題は、すべてのUISegmentedControl
ウィジェットが同じリスナーに接続されており、ユーザーがどの基準をオンまたはオフにしているのかを知る方法がないことです。Tag
行番号に設定された値を見てきましたが、ストーリーボードでcellForRowAtIndexPath
既に使用していTag
ます。リスナーでどの行が操作されているかを知るにはどうすればよいですか?
更新: コード スニップが追加されました
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *retcell;
NSInteger thisrow = indexPath.row;
// retrieve the items which should be printed for this
// row. set text on widget depending on item type
OBJ_Items *items = [mCriteria objectForKey:thisrow];
if ([items.Type isEqualToString:YESNO])
{
retcell = [tableView dequeueReusableCellWithIdentifier:@"yesno"];
// get a handle to the widget in this cell in order to access it's Text property
UISegmentedControl *yesno = (UISegmentedControl *)[retcell viewWithTag:200];
// .. set text for yesno segments
// save the row numer to this object's tag so we can retrieve the item object
// on click
[yesno setTag:thisrow];
}
if ([items.Type isEqualToString:SETTING])
{
retcell = [tableView dequeueReusableCellWithIdentifier:@"setting"];
UISegmentedControl *setting = (UISegmentedControl *)[retcell viewWithTag:201];
// set text for segments...
[setting setTag:thisrow];
}
return (retcell);
}