0

設置イメージ

異なるビュー コントローラーから 1 つのエンティティの異なる属性を更新しようとしています。

エンティティの人物を開いたとします。1 つのビュー コントローラーは人物の名前の電子メールなどを取得し、もう 1 つのビュー コントローラーは、次回その人物に会うときに、その人物を開いた状態で行うアクティビティを取得します。

どちらも、同じエンティティのそれぞれの属性に保存する必要があります。現状では、最初のビューコントローラー情報を新しいセルに保存することしかできません。次に、最初のビューコントローラーで保存されたセルの数に関係なく、2番目のビューコントローラー情報は1つのセルにのみ保存されます

@interface PeopleDetailViewControllerUIViewController ()

@end

@implementation PeopleDetailViewControllerUIViewController
@synthesize people;
- (NSManagedObjectContext *)managedObjectContext {
    NSManagedObjectContext *context = nil;
    id delegate = [[UIApplication sharedApplication] delegate];
    if ([delegate performSelector:@selector(managedObjectContext)]) {
        context = [delegate managedObjectContext];
    }
    return context;
}


- (void)viewDidLoad
{
[super viewDidLoad];
    // Do any additional setup after loading the view.
    if (self.people) {
        [self.nameTextField setText:[self.people valueForKey:@"name"]];
        [self.emailTextField setText:[self.people valueForKey:@"email"]];
        [self.homeTextField setText:[self.people valueForKey:@"home"]];
        [self.cellTextField setText:[self.people valueForKey:@"cell"]];
        [self.addressTextField setText:[self.people valueForKey:@"address"]];
        [self.notesTextField setText:[self.people valueForKey:@"notes"]];
     }
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

    #pragma mark - Table view data source


        - (UITableViewCell *)tableView:(UITableView *)tableView         cellForRowAtIndexPath:        (NSIndexPath *)indexPath
             {
               static NSString *CellIdentifier = @"Cell";
                 UITableViewCell *cell = [tableView             dequeueReusableCellWithIdentifier:CellIdentifier     forIndexPath:indexPath];

            // Configure the cell...

                 return cell;
            } 

            /*

}

- (IBAction)cancel:(id)sender {
    [self dismissViewControllerAnimated:YES completion:nil];
}    


 - (IBAction)save:(id)sender {
     NSManagedObjectContext *context = [self managedObjectContext];

         // Create a new managed object
     if (self.people) {
        [self.people setValue:self.nameTextField.text forKey:@"name"];
         [self.people setValue:self.emailTextField.text forKey:@"email"];
         [self.people setValue:self.homeTextField.text forKey:@"home"];
         [self.people setValue:self.cellTextField.text forKey:@"cell"];
         [self.people setValue:self.addressTextField.text forKey:@"address"];
         [self.people setValue:self.notesTextField.text forKey:@"notes"];
    }
    else{
        NSManagedObject *newPeople = [NSEntityDescription     insertNewObjectForEntityForName:@"People" inManagedObjectContext:context];
        [newPerson setValue:self.nameTextField.text forKey:@"name"];
        [newPerson setValue:self.emailTextField.text forKey:@"email"];
        [newPerson setValue:self.homeTextField.text forKey:@"home"];
        [newPerson setValue:self.cellTextField.text forKey:@"cell"];
        [newPerson setValue:self.addressTextField.text forKey:@"address"];
        [newPerson setValue:self.notesTextField.text forKey:@"notes"];
    }


    NSError *error = nil;
    // Save the object to persistent store
    if (![context save:&error]) {
        NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
     }

     [self dismissViewControllerAnimated:YES completion:nil];

    }
4

0 に答える 0