- Registriert
- 09.04.12
- Beiträge
- 9
Hallo,
ich bin gerade dabei IOS-Programmierung zu lernen und bin leider auf ein Problem gestoßen. Ich hoffe, ihr könnt mir dabei weiterhelfen:
Und zwar möchte ich durch ein PLUS-Button ein ModalView anzeigen, damit man Daten eingeben kann und nach dem der FERTIG-Button geklickt wird, soll diese Daten gespeichert und in ein TableView angezeigt werden.
Das Speichern von Daten hat zwar funktioniert, aber die Tabelle lädt sich nicht neu. (Man muss dabei das App manuell neu starten und das möchte ich nicht!)
Meine Frage ist daher: wo soll ich [tableView reloadData] hin schreiben, damit die Tabelle sich neu ladet nach dem der Nutzer auf FERTIG-Button geklickt hat?
FERTIG-Button geklickt:
TableView.m Datei:
Ich bedanke mich schon mal für eure Hilfe
Viele Grüße
ich bin gerade dabei IOS-Programmierung zu lernen und bin leider auf ein Problem gestoßen. Ich hoffe, ihr könnt mir dabei weiterhelfen:
Und zwar möchte ich durch ein PLUS-Button ein ModalView anzeigen, damit man Daten eingeben kann und nach dem der FERTIG-Button geklickt wird, soll diese Daten gespeichert und in ein TableView angezeigt werden.
Das Speichern von Daten hat zwar funktioniert, aber die Tabelle lädt sich nicht neu. (Man muss dabei das App manuell neu starten und das möchte ich nicht!)
Meine Frage ist daher: wo soll ich [tableView reloadData] hin schreiben, damit die Tabelle sich neu ladet nach dem der Nutzer auf FERTIG-Button geklickt hat?
FERTIG-Button geklickt:
Code:
- (IBAction)doneEingabeBarButton:(id)sender{
AppDelegate *unserDelegate = [[UIApplication sharedApplication] delegate];
Buch* neueBuch = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([Buch class]) inManagedObjectContext:unserDelegate.managedObjectContext];
neueBuch.buchname = self.buchnameUITextFieldOutlet.text;
[unserDelegate saveContext];
[self dismissViewControllerAnimated:YES completion:nil];
}
TableView.m Datei:
Code:
@interface BuchTableViewController ()
@property (nonatomic, strong) NSFetchedResultsController *fetchedResultsController;
@end
@implementation BuchTableViewController
- (NSFetchedResultsController *)fetchedResultsController
{
if (_fetchedResultsController) {
return _fetchedResultsController;
}
AppDelegate * unserDelegate = [[UIApplication sharedApplication] delegate];
NSFetchRequest * request = [NSFetchRequest fetchRequestWithEntityName:@"Buch"];
request.fetchBatchSize = 64;
NSSortDescriptor * sortierung = [NSSortDescriptor sortDescriptorWithKey:@"buchname" ascending:YES];
request.sortDescriptors = @[sortierung];
_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:unserDelegate.managedObjectContext sectionNameKeyPath:nil cacheName:nil];
NSError * fehler;
[_fetchedResultsController performFetch:&fehler];
if (fehler) {
NSLog(@"Hier gibt es ein Fehler: %@", [fehler userInfo]);
}
return _fetchedResultsController;
}
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return self.fetchedResultsController.sections.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
id<NSFetchedResultsSectionInfo> sectionInfo = self.fetchedResultsController.sections [section];
return [sectionInfo numberOfObjects];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"BuchCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
// Configure the cell...
Buch * buch = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = buch.buchname;
return cell;
}
Ich bedanke mich schon mal für eure Hilfe
Viele Grüße