3

特定のオブジェクト(名、姓、一意のID)を持つjson配列があります。それらを解析して辞書に保存し、NULL条件をチェックすることもできます。

名前を表示できるテーブルを作成しました。また、各行にも1つのボタンがあり、タグを付けています。私が欲しいのは、ボタンをクリックすると、コンソールでサーバーからフェッチされた一意のIDを確認できることです。この一意のIDを使用すると、サーバー上でそのIDに対応するビューを表示するのに役立つため、この一意のIDを次のビューに渡す必要があります。

ここをクリックして、これまでに行ったことを確認してください

これをviewDidLoadメソッドに追加して、いくつかの変更を加えました。

  for(NSDictionary *items in infos)
      {
          ....
          ....
         for(int i =0; i < len; i++)
          {
             ...
             ...
             ...


             for(NSDictionary *newItems in infoArray)
               {
                ...
                ...

                NSString *folks_IdRcv = [[items objectForKey:strr]objectForKey:@"folks_id"];
                NSLog(@"FolksID = %@", folks_IdRcv);

                NSString *folksIDString = [NSString stringWithFormat:@"%@", folks_IdRcv, nil];
                NSLog(@"folkid_display=%@", folksIDString);


                if((fName && lName && email_Id && number_id) && displayName && folksIDString != NULL)
                     {

                        ...
                        ...                            
                        [folksIDArray insertObject:folksIDString atIndex:ii];
                NSLog(@"FolksID String Name = %@", [folksIDArray objectAtIndex:(ii)]);
                ii++;
                                }
                              }
                           }
                        } 

NSMutableArray *nArray = [[NSMutableArray alloc]initWithCapacity:len];


for(int j =0; j<len ;j++)
   {

      ...
      ... 
      [nArray addObject:[folksIDArray objectAtIndex:j]];
      NSLog(@"FID Element=%@", nArray);
}

self.infos = mArray;   
[super viewDidLoad];
}

そして、この特定のコードについて、私は次の応答を受け取っています:

FID Element=(
400386528950544,
162622322666106,
643171434889706
)

これで、各行に1つのボタンがあり、各行の名前と名前を表示できるテーブルビューができました。私が今欲しいのは、ボタンをクリックするたびに、その特定の名前の一意のIDをタグに保存して、ボタンのクリックアクションでそのIDをサーバーに送信できるようにすることです。

私を助けてください。

4

4 に答える 4

2

ここでは、一意のID配列の配列を作成でき、この配列は.hファイルで宣言するか、クラスメンバーである必要があると想定しています。次のコードを使用するより。

-(IBAction)buttonClicked1:(id *)sender{
  NSString *UIDString = [uidarray objectAtIndex:[sender tag]]; // uidarray is  unique id  array 
  NSLog(@"uid for particular button=%@", UIDString);// this will give you kid for button that you tapped or clicked.
}
于 2012-05-09T11:36:37.453 に答える
1

私はあなたの要件について1つのアイデアを持っています... TableViewデリゲートメソッドで.....

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
.............your another code........
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    CGRect frame = CGRectMake(0.0, 0.0, 14, 14);
    button.frame = frame;   // match the button's size with the image size

    [button setBackgroundImage:image forState:UIControlStateNormal];

    // set the button's target to this table view controller so we can interpret touch events and map that to a NSIndexSet
    [button addTarget:self action:@selector(checkButtonTapped:event:) forControlEvents:UIControlEventTouchUpInside];
    button.backgroundColor = [UIColor clearColor];
    cell.accessoryView = button;    
    return cell;
}

このメソッドを貼り付けた後...

- (void)checkButtonTapped:(id)sender event:(id)event
{
    NSSet *touches = [event allTouches];
    UITouch *touch = [touches anyObject];
    CGPoint currentTouchPosition = [touch locationInView:Yourtableview];
    NSIndexPath *indexPath = [Yourtableview indexPathForRowAtPoint: currentTouchPosition];
    if (indexPath != nil)
    {
        [self tableView: Yourtableview accessoryButtonTappedForRowWithIndexPath: indexPath];
    }
}

また、accessoryButtonTappedForRowWithIndexPath テーブルビューのデリゲート メソッドでも....

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{

       NSMutableDictionary *item = [self.arrTypes objectAtIndex:indexPath.row];//sel.arrTypes is Array Data..use your Data here and
        .......  do somthing here which you want  ......
}
于 2012-05-09T11:45:18.823 に答える
1

タグは 1 つの方法であり、もう 1 つの方法は送信者のスーパービューです。以下のコードを参照してください(タグを設定する必要はありません)

- (IBAction)clickedButton:(id)sender 
{

    UIButton *button = (UIButton *)sender;

    UITableViewCell *cell = (UITableViewCell *)button.superview;

    UITableView *tableView = (UITableView *)cell.superview;

    NSIndexPath *indexPath = [tableView indexPathForCell:cell];

     NSString* id = [Array objectAtIndex:indexPath.row];
}

タグを使用している場合は、タグが一意である必要があります。

于 2012-05-09T11:49:02.153 に答える
0

これを使ってUIButton* btn……

btn.tag. 

そしてボタンを押すと

UIButton *button = (UIButton*)sender;
thetatosendserver = button.tag
于 2012-05-09T11:24:29.067 に答える