我有一個UITableview,並在TableView I中填充了json數據。我已經實現了一個多選的tableview代碼,用一個複選標記來檢查碰到的表格單元格。如何判斷在多選UITableview中使用複選標記選擇哪個UITableCell。 Objective C
我的問題是如何判斷我選擇了哪些tableview單元格,以及如何將操作放入選定的表格視圖單元格中?
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.json2.count;
}
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] ;
}
cell.textLabel.text = self.json2[indexPath.row][@"SurveyName"];
//cell.detailTextLabel.text = self.json1[indexPath.row][@"AssetDesc"];
// Sets the accessory for the cell
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *thisCell = [tableView cellForRowAtIndexPath:indexPath];
if (thisCell.accessoryType == UITableViewCellAccessoryNone) {
thisCell.accessoryType = UITableViewCellAccessoryCheckmark;
}else{
thisCell.accessoryType = UITableViewCellAccessoryNone;
}
}
- (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath {
//add your own code to set the cell accesory type.
return UITableViewCellAccessoryNone;
}
所以通常如果我是從tableview中的細胞進行賽格瑞我會做到以下幾點:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Perform segue
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[self performSegueWithIdentifier: @"showSurveyForm" sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showSurveyForm"]) {
// NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
CameraViewController *destViewController = segue.destinationViewController;
// Hide bottom tab bar in the detail view
destViewController.hidesBottomBarWhenPushed = YES;
destViewController.surveyQuestionId = self.surveyQuestionIDParsed;
destViewController.jsonTitleforSurvey = self.json2;
destViewController.surveyTitleAssetId = self.assetSurvey;
NSLog(@"Survey ID for Survey: %@", self.surveyQuestionIDParsed);
NSLog(@"Survey name titile: %@", self.json2);
NSLog(@"Asset ID for Title: %@", self.assetSurvey);
}
else if ([segue.identifier isEqualToString:@"showCameraRoll"]) {
// NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
// Hide bottom tab bar in the detail view
}
else if ([segue.identifier isEqualToString:@"showJsonData"]) {
// NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
}
else if ([segue.identifier isEqualToString:@"testPickerDemo"]) {
// NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
}
}
我想作一個賽格瑞在我的UITableView選擇多選定單元格後。
例如我做了一個選擇並檢查了2行。我想捕獲或在我的nslog中看到哪些tableview單元格被選中,所以我可以做另一個json調用,並基於選定的行繼續。
我知道如何調用和解析json並製作一個segue。
你解決了這個問題嗎? – Bhavin
@Vin。對不起,還沒有。當我按下選定的單元格時,我只獲取我的ID或數組。我反而想使用一個按鈕,並在推後告訴我哪些行被選中。 –
那又怎麼了?只需將'indexPath.row'添加到'selArray'(顯示在我的Answer中)和'-onButtonClick'中,就可以使用該數組。希望你得到我! :) – Bhavin