2011-12-11 5 views
0

ハIIすべてのボディは、私がのUITableView細胞から選択複数の値のためのアクセサリビューのチェックマークを使用しています、私は、ユーザーがのUITableView細胞から複数の値を選択したときに私の必要性があるDidSelectRowAtIndexPathアクセサリビューのチェックマークを使用してUITableviewセルから複数の値を取得する方法?

NSArray* toReload = [NSArray arrayWithObjects: indexPath, self.selectedIndexPath, nil]; 
    self.selectedIndexPath = indexPath; 
    if ([[tableView cellForRowAtIndexPath:indexPath] accessoryType] == UITableViewCellAccessoryCheckmark){ 

     BOOL selected = [[appDelegate.notesArray objectAtIndex:[indexPath row]] boolValue]; 
     [appDelegate.notesArray replaceObjectAtIndex:[indexPath row] withObject:[NSNumber numberWithBool:!selected]]; 

     [[tableView cellForRowAtIndexPath:indexPath] setAccessoryType:UITableViewCellAccessoryNone]; 
    } 

    else { 

     [[tableView cellForRowAtIndexPath:indexPath] setAccessoryType:UITableViewCellAccessoryCheckmark]; 

    } 

にこのコードを置きますそれは配列に格納され、配列をボタンclick.iに渡す必要があります。これらの配列をgoogledoc.Howで共有するには、UITbleViewCell.whatコードから複数の値の配列を取得する必要があります。私はその値をshare.ifに渡したいと思っています。参考のためにサンプルコードがあれば、私にとって大きな助けになります。 ありがとうございます。 EDIT:

- (IBAction)doUpload:(id)sender 
{ 

    NSMutableArray *selected_items = [[NSMutableArray alloc] init]; 

    for (int i = 0; i<[appDelegate.notesArray count]; i++) { 
     if (selected[i]) [selected_items addObject:[appDelegate.notesArray objectAtIndex:i]]; 


      UploadView *uploadview = (UploadView *)self.view; 
      if (uploadview != nil) 
      { 

       [m_owner uploadString:@""]; 
       //[self dismissModalViewControllerAnimated:YES]; 
      } 


     }  
} 
+0

[テーブルビューのみのチェックマークはアクセサリビューですか?](http://stackoverflow.com/questions/8463013/how-to-get-values-from-a-tableview-only-checkmark-is-the-accessory-view) – jrturton

答えて

2

私はあなたの提示を複数選択テーブルビューを行う方法が何であるかと思いますか? - もしそうなら、これは役立つはず:

あなたの.hで

BOOL selected[/* max number of cells */]; 

をユーザーがボタン上のセル

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSUInteger row = [indexPath row]; 

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    if (cell.accessoryType == UITableViewCellAccessoryCheckmark) { 
     cell.accessoryType = UITableViewCellAccessoryNone; 
     selected[row] = NO; 
    } 
    else { 
     cell.accessoryType = UITableViewCellAccessoryCheckmark; 
     selected[row] = YES; 
    } 

    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

を選択すると

- (void)buttonClick { 
    // pass the boolean array into the next controller, or just pass the items you need. 
    // for example: 


    for (int i = 0; i<[items count]; i++) { 
     if (selected[i]) [m_owner uploadString:[items objectAtIndex:i]]; 
    } 
} 

here用を参照してくださいをクリックしてください私が複数選択したデモンストレーションプロジェクト。

+0

reply.thisのボタンは私のコードですUploadView * uploadview =(UploadView *)self.view; if(uploadview!= nil) { [m_owner uploadString:path]; // [self dismissModalViewControllerAnimated:YES]; } }選択したインデックスをgdocにupldする必要があります。パスしようとします – ICoder

+0

アイテムは何ですか?私の配列? – ICoder

+0

私はこのselcedインデックス配列を続けて、文字列値を渡したい[m_owner uploadString:ここで私は値を渡したい]; – ICoder

0

テーブルのサイズは?大きくない場合は、intを使用して、行が選択されているかどうか、整数の各ビットがテーブルビュー行の状態(選択されているかどうか)を表すかどうかを確認できます。

関連する問題