I have a bug when I save information passed by a user in a detailTableViewController. Though when I force the debugger by pressing lecture, it carries on performing the coredata job, etc.
Here is my structure: A detailTableViewController which presents staticcells that the user fills and then passed to the coredata. It implements a delegate for the MainTableViewController to pop over it.
PhraseDetailTableViewController.h:
#import <UIKit/UIKit.h>
#import "Phrase.h"
@class PhraseDetailTableViewController;
@protocol AddPhraseTVCDelegate
- (void) theSaveButtonOnThePhraseDetailWasTapped:(PhraseDetailTableViewController *) controller;
@end
@interface PhraseDetailTableViewController : UITableViewController
@property (strong,nonatomic) NSManagedObjectContext *managedObjectContext;
@property (nonatomic,weak) id <AddPhraseTVCDelegate> delegate;
@property (strong, nonatomic) IBOutlet UITextField *phraseMotivationTextField;
- (IBAction)save:(id)sender;
@end
PhraseDetailTableViewController.m :
- (void)save:(id)sender
{
NSLog(@"Telling the PhraseDetailTableViewController Delegate that Save was tapped on the PhraseDetailTableViewController");
Phrase *phrase = [NSEntityDescription insertNewObjectForEntityForName:@"Phrase" inManagedObjectContext:self.managedObjectContext];
phrase.motivation = phraseMotivationTextField.text;
NSLog(@"la phrase est %@", phrase.motivation);
[self.managedObjectContext save:nil];
[self.delegate theSaveButtonOnThePhraseDetailWasTapped:self];
NSLog(@"le message savebuttononethe.. a ete envoyé");
}
I delegated it to the main, here is the .H and .m
PhraseTableViewController.h :
#import <UIKit/UIKit.h>
#import "PhraseDetailTableViewController.h"
#import "CoreDataTableViewController.h"
#import "Phrase.h"
@interface PhraseTableViewController : CoreDataTableViewController <AddPhraseTVCDelegate>
@property (strong,nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (strong,nonatomic) NSManagedObjectContext *managedObjectContext;
@end
PhraseTableViewController.m (extract where i pass the delegate and It receive the delegate method):
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"Add Phrase Segue"])
{
NSLog(@"Seeting PhraseTVC as a delegate of PhraseDetailTableViewController");
PhraseDetailTableViewController *phraseDetailTableViewController= segue.destinationViewController;
phraseDetailTableViewController.delegate=self;
phraseDetailTableViewController.managedObjectContext=self.managedObjectContext;
}
}
- (void)theSaveButtonOnThePhraseDetailWasTapped:(PhraseDetailTableViewController *)controller
{
[controller.navigationController popViewControllerAnimated:YES];
NSLog(@"c'est la methode en elle meme qui chie");
}
I think there is something to do with the subclassing of the Main/detail and its inherited delegate. But i can't figure out what exactly implies this bug :s
CHeers, Louis