IDを作成し、テキストフィールドを介して名前を追加し、ビューコントローラーへのプッシュセグエを介して複数のユーザーが選択したプロパティを追加するという主な概念を持つタブバーコントローラーインターフェイスを持っています。
メインの ID ビュー コントローラーの追加とプッシュ セグエを解決して、詳細ビュー コントローラーから単一のプロパティを追加しましたが、シナリオを変更したいと思います...
詳細View Controllerにはプロシージャのリストがあり、ユーザーはメインビューに戻されるものを選択できます...「チェックボックス」または複数選択方法として設定し、すべてのプロシージャを選択するにはどうすればよいですか1 つだけではなく、メイン ビューに戻されましたか?
ストレージ モデルとしてコア データを使用し、メイン エンティティ「MedRec」と、MedRec のデータを構成する他のエンティティ (「プロシージャ」、「レベル」、「日付」など) との関係を使用しています。
#import "MedRecTVC.h" #import "MedRec.h" @implementation MedRecTVC @synthesize fetchedResultsController = _fetchedResultsController; @synthesize managedObjectContext = _managedObjectContext; @synthesize selectedMedRec; -(void)setupFetchedResultsController { // 1 - Decide what Entity you want NSString *entityName = @"MedRec"; //Put your entity name here NSLog(@"Setting up a Fetched Results Controller for the Entity named %@", entityName); // 2 - Request the Entity NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:entityName]; // 3 - Filter it if you want //request.predicate = [NSPredicate predicateWithFormat:@"Level.name = Blah"]; // 4 - Sort it if you want request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"number" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]]; // 5 - Fetch it self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:nil]; [self performFetch]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self setupFetchedResultsController]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"MedRec Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } //configure the cell //decide the order of table cell text and detail text MedRec *medrec = [self.fetchedResultsController objectAtIndexPath:indexPath]; NSString *number = [NSString stringWithFormat:@"%@", medrec.number]; cell.textLabel.text = number; cell.detailTextLabel.text = medrec.inLevel.level1; return cell; } - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { [self.tableView beginUpdates]; // Avoid NSInternalInconsistencyException // Delete the role object that was swiped MedRec *medrecToDelete = [self.fetchedResultsController objectAtIndexPath:indexPath]; NSLog(@"Deleting (%@)", medrecToDelete.number); [self.managedObjectContext deleteObject:medrecToDelete]; [self.managedObjectContext save:nil]; // Delete the (now empty) row on the table [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; [self performFetch]; [self.tableView endUpdates]; } } - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"Add MedRec Segue"]) { NSLog(@"Setting MedRecTVC as a delegate of AddMedRecTVC"); AddMedRecTVC *addMedRecTVC = segue.destinationViewController; addMedRecTVC.delegate = self; addMedRecTVC.managedObjectContext = self.managedObjectContext; } else if ([segue.identifier isEqualToString:@"MedRec Detail Segue"]) { NSLog(@"Setting MEdRecTVC as a delegate of MedRecDetailTVC"); MedRecDetailTVC *medrecDetailTVC = segue.destinationViewController; medrecDetailTVC.delegate = self; medrecDetailTVC.managedObjectContext = self.managedObjectContext; NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; self.selectedMedRec = [self.fetchedResultsController objectAtIndexPath:indexPath]; NSLog(@"Passing selected medrec (%@) to MedRecDetailTVC", self.selectedMedRec.number); medrecDetailTVC.medrec = self.selectedMedRec; } else { NSLog(@"Unidentified Segue Attempted!"); } } - (void)theSaveButtonOnTheAddMedRecTVCWasTapped:(MedRecDetailTVC *)controller { //refresh the table //close delegated view [controller.navigationController popViewControllerAnimated:YES]; } - (void)theSaveButtonOnTheMedRecDetailTVCWasTapped:(MedRecDetailTVC *)controller { [controller.navigationController popViewControllerAnimated:YES]; } @end